Quoting Hans Aberg <[EMAIL PROTECTED]>:

> C is composed of two languages: the preprocessor, to which #include
>  
> belongs, and merely composes the files into one compile unit, and
> the  
> C compiler, which processes that. So the C language itself does not
>  
> have any #include directive. 

Implementation issue. There is no requirement for a separate preprocessor, and 
the fact that compilation happens in stages is a feature of most if not all 
programming languages.

> This setup makes it impossible for the
> C  
> language to deduce module dependencies the way Haskell does, > which 
> 
> causes the complicated setup of the compiler. And of course, in  
> Haskell, one needs to tell which modules to import.
C doesn't have modules, so it is definitely impossible for it to "deduce module 
dependencies". And again you are saying that Haskell deduces module 
dependencies which is not something I read in the Haskell Standard. It uses 
modulo some renaming the same compilation model:
"A multi-module Haskell program can be converted into a single-module program 
by giving each entity a unique name, changing all occurrences to refer to the 
appropriate unique name, and then concatenating all the module bodies".
The "make" feature is something that could implemented in a C/C++ compiler 
easily by requiring each #include "xxx" to map to 
a library xxx.o or xxx.lib in abscence of which you just compile xxx.cc in some 
search path. 
Immanuel

----------------------------------------------------------------------
Find out how you can get spam free email.
http://www.bluebottle.com/tag/3



_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to