473,378 Members | 1,417 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

Fileless C++ environments

Hi,

I've been looking for some time for a fileless C++ environment. I mean the
environment where you don't store the program in cpp/h files, but instead
you work with the C++ entities itselves(classes, functions, namespaces
etc.). Have you heard of anything like that working somewhere?

Marcin
Jul 22 '05 #1
6 1716
Marcin Kaliciński wrote:
Hi,

I've been looking for some time for a fileless C++ environment. I mean the
environment where you don't store the program in cpp/h files, but instead
you work with the C++ entities itselves(classes, functions, namespaces
etc.). Have you heard of anything like that working somewhere?

Marcin


I'm confused. Where are the classes stored?
How do you generate new classes?

In embedded systems, many don't have a harddrive or a file system.
Sources reside on a development workstation and the executable is
downloaded on another platform. Is this what you mean by a
fileless C++ environment?

--
Thomas Matthews

C++ newsgroup welcome message:
http://www.slack.net/~shiva/welcome.txt
C++ Faq: http://www.parashift.com/c++-faq-lite
C Faq: http://www.eskimo.com/~scs/c-faq/top.html
alt.comp.lang.learn.c-c++ faq:
http://www.raos.demon.uk/acllc-c++/faq.html
Other sites:
http://www.josuttis.com -- C++ STL Library book

Jul 22 '05 #2
Thomas Matthews wrote:
Marcin Kaliciński wrote:
Hi,

I've been looking for some time for a fileless C++ environment. I mean
the environment where you don't store the program in cpp/h files, but
instead you work with the C++ entities itselves(classes, functions,
namespaces etc.). Have you heard of anything like that working somewhere?

Marcin


I'm confused. Where are the classes stored?
How do you generate new classes?


I think Marcin means a system where all classes are stored in a database
(for example). AFAIK there is no such thing for the C++ programming
language (and it wouldn't be conform to the standard either). And I don't
see the use of this. To work classbased and not file-based, you only need a
modern IDE which will support you with that type of abstraction. If you
want a fileless environment to save compile time, use a compiler with a
source database.

--
Dipl.-Inform. Hendrik Belitz
Central Laboratory of Electronics
Research Center Juelich
Jul 22 '05 #3

"Marcin Kaliciński" <ka****@poczta.onet.pl> wrote in message news:br**********@korweta.task.gda.pl...
Hi,

I've been looking for some time for a fileless C++ environment. I mean the
environment where you don't store the program in cpp/h files, but instead
you work with the C++ entities itselves(classes, functions, namespaces
etc.). Have you heard of anything like that working somewhere?

IBM tried this at one point. It breaks things. The language defineitely
mandates an ordering to the translation. You can't just randomly rearrange
parts of a C++ program.
Jul 22 '05 #4
Hi all,

I'll try to explain shortly how I see the fileless C++ environment working:

- There are no .h, *.cpp files etc.
- Classes, namespaces, functions etc. and their relations are stored in a
database
- When editing a C++ entity, you only see the code of that entity.
- There is no 'include' preprocessor command, or at least it is not used to
add C++ entities to the program.
- To use some external C++ entity in your program (like a standard library
class), you 'tell' the system that your program uses that entity. You don't
include anything. In a GUI environment this would be probably accomplished
by drag&dropping a name from available entities list into the project, or
something like that.
- To compile the program, the system generates a properly ordered sequence
of all C++ entities you used, and passes this to the compiler. If proper
ordering cannot be found, it means that there are circular references in the
program, and this is just an error.
- If the output sequence is temporarily stored in a file just before
invoking the compiler, there's no need for special compiling tools - an
ordinary file-based compiler can be used.
- To define a sub-entity (a nested class for example) you define a separate
entity, and 'tell' the environment that it is nested in some other. You
don't write class inside class (or if you do so, the environment will
automatically remove it from there).

I'm interested in this kind of environment, because I worked a lot with fair
sized file-based C++ projects, and I find the filesystem a nuisance. There's
an issue of how to split your source code between the files, and then how to
name them. In most cases I would like to have my files named by the names of
C++ entities, and have one entity in one file. But this is not always
possible (see example at the bottom). It usually causes problems where
classes and namespaces are nested inside each other. In this case I used to
split the source files between directories, mimicking the hierarchy of their
nesting in the project (i.e. I usually had a separate dir for each namespace
etc.). But this generally does not work good, because filesystem hierarchy
is something _different_ than C++ hierarchy.

As far as I remember, B. Stroustrup in one of his books (either in TC++PL or
in 'The Design and Evolution of C++') wrote that it's not neccesary for a
C++ program to be stored in files. I don't know if there's anything in the
C++ standard which makes this obligatory?

Example where class B cannot be defined in other file than class A, unless a
weird #include-in-the-middle-of-class is used:

class A {
class B { };
B b;
};
Best regards,
Marcin
Użytkownik "Marcin Kaliciński" <ka****@poczta.onet.pl> napisał w wiadomości
news:br**********@korweta.task.gda.pl...
Hi,

I've been looking for some time for a fileless C++ environment. I mean the
environment where you don't store the program in cpp/h files, but instead
you work with the C++ entities itselves(classes, functions, namespaces
etc.). Have you heard of anything like that working somewhere?

Marcin

Jul 22 '05 #5
"Marcin Kalicinski" <ka****@poczta.onet.pl> wrote:
I'll try to explain shortly how I see the fileless C++ environment working:
- There are no .h, *.cpp files etc.
- Classes, namespaces, functions etc. and their relations are stored in a
database
- When editing a C++ entity, you only see the code of that entity.
- There is no 'include' preprocessor command, or at least it is not used to add C++ entities to the program.
- To use some external C++ entity in your program (like a standard library
class), you 'tell' the system that your program uses that entity. You don't include anything. In a GUI environment this would be probably accomplished
by drag&dropping a name from available entities list into the project, or
something like that.


Sounds like "Intentional Programming" - see
http://citeseer.nj.nec.com/simonyi95death.html (click on the "PDF" or
"image" links near the top right corner of the page).

There is also some information at
http://c2.com/cgi/wiki?IntentionalProgramming. A quote from this page:

"All code was stored in a database and the user would only see a text-like
(but graphical layout) rendering of the information stored in that
database."

C++ code is not required to be stored as files; a comment in the standard
says:

"Source files, translation units and translated translation units need not
necessarily be stored as files, nor need there be any one-to-one
correspondence between these entities and any external representation. The
description is conceptual only, and does not specify any particular
implementation." (Section 2.1, paragraph 7:
http://ftp.csci.csusb.edu/dick/c++std/cd2/lex.html).

David F
Jul 22 '05 #6

"David Fisher" <no****@nospam.nospam.nospam> wrote in message
news:hH******************@nasal.pacific.net.au...
C++ code is not required to be stored as files; a comment in the standard
says:

"Source files, translation units and translated translation units need not
necessarily be stored as files, nor need there be any one-to-one
correspondence between these entities and any external representation. The
description is conceptual only, and does not specify any particular
implementation." (Section 2.1, paragraph 7:
http://ftp.csci.csusb.edu/dick/c++std/cd2/lex.html).

You need to read that carefully. All it says is you don't have to store
the various phases in disk files. The source code does however have
to be file-like: that is a linear sequence of sourced character set
characters.
There is a definite REQUIRED ordering to C++ source code. You can't
just take them various definitions/declarations in any ordering (or
unordered).

As I pointed out IBM tried this and it became impossible to use.
Jul 22 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Constandinos Mavromoustakis | last post by:
CFP: CLADE 2004-Challenges of Large Applications in Distributed Environments ------------------------------------------------- PhD student - Dept.Informatics at Aristotle University of...
1
by: D E | last post by:
Is it possible to have "development" and a "deployment" environments so that both of them are in essence exactly the same, but while the "deployment" site is still running and available to the...
0
by: sergii | last post by:
What is the right approach if I need to test and pre-production environments on oracle?
1
by: Ryan Anderson | last post by:
I have a sneaky problem with a web application that is acting differently between two different environments. Now, I know this is sticky because we are talking two different environments here, but...
2
by: sqlster | last post by:
We have 3 different environments: dev, qa, and production. After unit testing, the application is deployed to dev for unit testing among the programmers and business analyst. When that is okay it...
0
by: Wim Vanhoof | last post by:
----------------------------------------------------------- WLPE' 06 - CALL FOR PAPERS Workshop on Logic-based Methods in Programming Environments (satellite workshop of ICLP’06) August...
0
by: Wim Vanhoof | last post by:
----------------------------------------------------------- WLPE' 07 - CALL FOR PAPERS Workshop on Logic-based Methods in Programming Environments (satellite workshop of ICLP'07) ...
0
by: Lennert | last post by:
DutchPIPE beta 0.4.0 PHP version 5 & AJAX With DutchPIPE open source software, web developers can make virtual multi-user environments. Each web page becomes an abstracted environment or...
0
by: db2admin | last post by:
hello, We have 2 environments one is test which is one BCU with 8 partitions + admin/catalog node server ( smaller BCU ) and other prod is 3 BCU with 24 partitions + admin/catalog node server (...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.