Jump to content

Modula-3: Difference between revisions

From EDM2
No edit summary
Ak120 (talk | contribs)
mNo edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Image:M3.png|200px|right]]
[[Image:M3.png|200px|right]]
One of the few languages out there designed as a systems language from the outset. Originally developed by [[Acorn]] USA an operating system development tool and then called Modula-2+, it added multitasking, threading and multi programming features to the [[Modula-2]] programming language, but M2 itself is a development of [[Pascal]] by its original author and adds separately compiled modules, stricter & clearer syntax and a host of system programming additions to Pascal in addition to a general clean up of the language features. Modula 3 is a development that adds memory management (garbage collection), type & generic safety features, generic programming, better exception handling and object-oriented extensions to Modula-2+. There is also an obscure variant called simply '''Modula-3*''' that adds strong parallel processing features to the language.
'''Modula-3''' is a systems programming language that descends from Mesa, [[Modula-2]], Cedar, and Modula-2+. It adds objects and classes, exception handling, garbage collection, lightweight processes, and the isolation of unsafe features.


;Obliq
==History==
Obliq is an interpreted domain specific programming language that is shipped with later versions of the Modula-3 System. It is intended to be used to program web "agents" (in a much wider understanding than agents are used in normal computer speak), in other words a utility programming language for the web rather than a scripting language of any sort and is in this reminiscent of '''WebL''' ([[Oberon]] variant).
Originally developed by Acorn USA an operating system development tool and then called Modula-2+, it added multitasking, threading and multi programming features to the Modula-2 programming language, but M2 itself is a development of [[Pascal]] by its original author and adds separately compiled modules, stricter & clearer syntax and a host of system programming additions to Pascal in addition to a general clean up of the language features. Modula 3 is a development that adds memory management (garbage collection), type & generic safety features, generic programming, better exception handling and object-oriented extensions to Modula-2+. There is also an obscure variant called simply '''Modula-3*''' that adds strong parallel processing features to the language.


==A list of OS/2 implementations of Modula-3==
See also: [[Obliq]]
* [[SRC Modula 3]] - Open source - Discontinued
* Modula 3 Reboot - Open source - Current?


====OS/2 text editors with Modula 3 support====
==OS/2 Implementations==
* [[jEdit]] - Java based editor - Modula 3 syntax highlighting built in - Current.
* [[SRC Modula 3]] - Open source
* Modula 3 Reboot - Open source


==A list of DOS implementations of Modula-3==
==Text editors with Modula 3 support==
* [[SRC Modula 3]] - Open source - Discontinued
* [[jEdit]] - Java based editor - Modula 3 syntax highlighting built in
* [[M3PC-Klagenfurt]] - Open source - Discontinued
 
==DOS Implementations==
*[[SRC Modula 3]] - Open source
*M3PC-Klagenfurt - Open source


==Publications==
==Publications==
* Elcomsoft: [https://modula3.elegosoft.com/cm3/doc/help/bib.html Modula-3; an annotated bibliography]
* Greg Nelson (ed.): ''System Programming with Modula-3'' - Prentice-Hall 1991, ISBN 0-13-590464-1
* G. Nelson (ed.): System Programming with Modula-3 - 1990 - Prentice Hall - ISBN 0-13-590464-1
* Samuel P. Harbison: ''Modula-3'' - Prentice-Hall 1992, ISBN 0-13-596396-6
* Robert Sedgewick: ''Algorithms in Modula-3'' - Addison-Wesley 1993, ISBN 0-201-53351-0
 
* Joseph Bergin: [http://csis.pace.edu/~bergin/M3text Object-Oriented Data Abstraction in Modula-3] - 1997
* Joseph Bergin: [http://csis.pace.edu/~bergin/M3text Object-Oriented Data Abstraction in Modula-3] - 1997
* Michel R. Dagenais: [http://www.professeurs.polymtl.ca/michel.dagenais/pkg/BDAM3alpha.ps Building Distributed OO Applications: Modula-3 Objects at Work - Draft Version] - 1997
* Michel R. Dagenais: ''Building Distributed OO Applications: Modula-3 Objects at Work'' - Draft Version, 1997
* Luca Cardelli, Jim Donahue, Mick Jordan, Bill Kalsow and Greg Nelson: [http://lucacardelli.name/Papers/Modula3TypeSystem.A4.pdf The Modula-3 Type System] - In PDF format
* Luca Cardelli, Jim Donahue, Mick Jordan, Bill Kalsow and Greg Nelson: [http://lucacardelli.name/Papers/Modula3TypeSystem.A4.pdf The Modula-3 Type System]
* Luca Cardelli: [http://lucacardelli.name/Papers/SRC-045.pdf Typeful Programming] - In PDF format
* Luca Cardelli: [http://lucacardelli.name/Papers/SRC-045.pdf Typeful Programming]
* Luca Cardelli, James Donahue, Lucielle Glassman, Mick Jordan, Bill Kalsow and Greg Nelson: [http://lucacardelli.name/Papers/SRC-052.pdf The Modula-3 Report (Revised)] - In PDF format - 1989
* Luca Cardelli, James Donahue, Lucielle Glassman, Mick Jordan, Bill Kalsow and Greg Nelson: [http://lucacardelli.name/Papers/SRC-052.pdf The Modula-3 Report (Revised)] - 1989
* Emin Gun Sirer, Stefan Savage, Przemyslaw Pardyak, Greg P. DeFouw, Mary Ann Alapat & Brian N. Bershad: [https://cseweb.ucsd.edu/~savage/papers/Wcsss96m3os.pdf Writing an Operating System with Modula-3]  
* Emin Gün Sirer, Stefan Savage, Przemyslaw Pardyak, Greg P. DeFouw, Mary Ann Alapat & Brian N. Bershad: [https://cseweb.ucsd.edu/~savage/papers/Wcsss96m3os.pdf Writing an Operating System with Modula-3]


;Introductory material
;Introductory material
* Swaminathan Sankararaman and Bojan Durickovic: [http://pub.bojand.org/modula3.pdf Modula-3 - CS 520 Final Report] - 2008 - In PDF format
* Swaminathan Sankararaman and Bojan Durickovic: [http://pub.bojand.org/modula3.pdf Modula-3 - CS 520 Final Report] - 2008
 
;Obliq
* Luca Cardelli: [http://lucacardelli.name/Papers/ObliqPaper.A4.pdf Obliq - A language with distributed scope] - In PDF format - 1994.
* Luca Cardelli: [http://lucacardelli.name/Papers/Obliq.A4.pdf A Language with Distributed Scope] - In [[PDF]] format - 1995.
* Luca Cardelli and Krishna A. Bharat: [http://lucacardelli.name/Papers/DistributedApps.A4.pdf Distributed Applications in a Hypermedia Setting] - In PDF format - 1995.
* Luca Cardelli: [http://lucacardelli.name/Papers/GlobalComputation.A4.pdf Global Computation] - In PDF format - 1996.
* Luca Cardelli: [http://lucacardelli.name/Papers/MobileComputationPosition.pdf Mobile Computation (Position Paper)] - In PDF format - 1995 - Obliq related.
* Luca Cardelli and Krishna A. Bharat: [http://lucacardelli.name/Papers/Migration.A4.pdf Migratory Applications] - In PDF format - 1997
* Luca Cardelli and Rowan Davis: [http://lucacardelli.name/Papers/ServiceCombinators.US.pdf Service Combinators for Web Computing] - In PDF format - 1997/9 - Obliq related.


;Modula-3*
;Modula-3*
* Ernst A. Heinz: [http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=381BE5E5C881A2E8084981EB54C3B025?doi=10.1.1.55.1978&rep=rep1&type=pdf MODULA-3*: An Efficiently compilable extension of Modula-3 for problem-oriented explicitly parallel programming]
* Ernst A. Heinz: ''MODULA-3*: An Efficiently compilable extension of Modula-3 for problem-oriented explicitly parallel programming''


==Links==
==Links==
* [http://www.modula3.org/ Modula-3 Org] - Info and links on the Modula 3 language.
* [http://www.modula3.org/ Modula-3 Org] - Info and links on the Modula 3 language
====USENET====
* Elcomsoft: [https://modula3.elegosoft.com/cm3/doc/help/bib.html Modula-3; an annotated bibliography]
* [news:comp.lang.modula3 comp.lang.modula3] - Very low volume - Go to the [https://groups.google.com/forum/#!forum/comp.lang.modula3 Google groups version] if you or your ISP are newsgroup challenged in some way.
* USENET: [news:comp.lang.modula3 comp.lang.modula3] - Very low volume
 
==Standards==
* [http://www.fh-jena.de/~kleine/history/languages/DEC-Modula3-SRC052.pdf The revised version of the original Modula-3 report] and the associated paper below
* [http://www.fh-jena.de/~kleine/history/languages/DEC-Modula3-SRC113.pdf Some useful Modula-3 interfaces].


[[Category:Programming Languages]] [[Category:Modula-3]]
[[Category:Programming Languages]] [[Category:Modula-3]]

Latest revision as of 14:56, 5 December 2022

Modula-3 is a systems programming language that descends from Mesa, Modula-2, Cedar, and Modula-2+. It adds objects and classes, exception handling, garbage collection, lightweight processes, and the isolation of unsafe features.

History

Originally developed by Acorn USA an operating system development tool and then called Modula-2+, it added multitasking, threading and multi programming features to the Modula-2 programming language, but M2 itself is a development of Pascal by its original author and adds separately compiled modules, stricter & clearer syntax and a host of system programming additions to Pascal in addition to a general clean up of the language features. Modula 3 is a development that adds memory management (garbage collection), type & generic safety features, generic programming, better exception handling and object-oriented extensions to Modula-2+. There is also an obscure variant called simply Modula-3* that adds strong parallel processing features to the language.

See also: Obliq

OS/2 Implementations

Text editors with Modula 3 support

  • jEdit - Java based editor - Modula 3 syntax highlighting built in

DOS Implementations

Publications

  • Greg Nelson (ed.): System Programming with Modula-3 - Prentice-Hall 1991, ISBN 0-13-590464-1
  • Samuel P. Harbison: Modula-3 - Prentice-Hall 1992, ISBN 0-13-596396-6
  • Robert Sedgewick: Algorithms in Modula-3 - Addison-Wesley 1993, ISBN 0-201-53351-0
Introductory material
Modula-3*
  • Ernst A. Heinz: MODULA-3*: An Efficiently compilable extension of Modula-3 for problem-oriented explicitly parallel programming

Links