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