Hi,

On Fri, Jul 8, 2022 at 11:37 AM Ralf Quint <freedos...@gmail.com> wrote:
>
> For Pascal, this is +95% wrong. The first widespread version of Pascal,
> UCSD Pascal, also sold for example under names like "Apple Pascal" (on
> Apple II/III) did introduce the concept of "units", which allowed not
> only for modular development, but also for code reuse, as well as basic
> data and code encapsulation, which are all part of the core
> functionality of object oriented programming (before that term and its
> use was totally perverted to today's levels). That was also introduced
> starting with Turbo Pascal 4.0 and is a staple of later Turbo/Borland
> Pascal versions as well Object Pascal implementations like Delphi and
> FreePascal.

The original Pascal was stabilized and "sent off" to standardization
in 1977. They didn't add any major features, so it's almost the same
as de facto J&W. The standard (ISO 7185) was published in 1982.
"Classic" Pascal had no modularity, everything was a single file. (I
presume that many people used homegrown preprocessors [e.g. Doug
Comer's MAP] like BWK also did in _Software Tools in Pascal_.)

Everybody and their brother made Pascal derivatives: Ada, Modula-2,
Modula-3, etc. While Dr. Wirth was not directly involved, there was
also a newer "Extended" Pascal standard in 1988 (ISO 10206) that also
had modules. But even Wirth kept going and started developing Oberon
in 1986. "Standard" Modula-2 (N.B. GNU GM2) came in 1996 (ISO 10514).
(So it was too many competing languages, honestly.)

* https://en.wikipedia.org/wiki/Modular_programming

I forget the details, but there's a difference between "separate
compilation" and "independent compilation". One is including files
(like C) while the other is properly-checked modules.

* https://courses.cs.vt.edu/~cs3304/Spring00/notes/Chapter-8/tsld033.htm

"Independent compilation is compilation of some of the units of a
program separately from the rest of the program, without the benefit
of interface information. Separate compilation is compilation of some
of the units of a program separately from the rest of the program,
using interface information to check the correctness of the interface
between the two parts."

N.B. It's much slower having to reparse header files over and over
again (but many compilers already support precompiled headers).

Actually, C++20 added modules! GNU's G++ is close to being fully C++20
compliant (but by default 12.1 is only "gnu++17" by default, I think.)

* https://en.cppreference.com/w/cpp/language/modules
* https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Modules.html
* https://clang.llvm.org/docs/Modules.html
* https://docs.microsoft.com/en-us/cpp/cpp/modules-cpp?view=msvc-170


_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to