Modula-3: Difference between revisions
mNo edit summary |
|||
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 | 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. | ||
;Obliq | ;Obliq | ||
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). | 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). | ||
== | ==OS/2 Implementations== | ||
* [[SRC Modula 3]] - Open source - Discontinued | * [[SRC Modula 3]] - Open source - Discontinued | ||
* Modula 3 Reboot - Open source - Current? | * Modula 3 Reboot - Open source - Current? | ||
== | ==Text editors with Modula 3 support== | ||
* [[jEdit]] - Java based editor - Modula 3 syntax highlighting built in - Current. | * [[jEdit]] - Java based editor - Modula 3 syntax highlighting built in - Current. | ||
== | ==DOS Implementations== | ||
*[[SRC Modula 3]] - Open source - Discontinued | *[[SRC Modula 3]] - Open source - Discontinued | ||
*M3PC-Klagenfurt - Open source - Discontinued | *M3PC-Klagenfurt - Open source - Discontinued | ||
Line 18: | Line 18: | ||
==Publications== | ==Publications== | ||
* Elcomsoft: [https://modula3.elegosoft.com/cm3/doc/help/bib.html Modula-3; an annotated bibliography] | * Elcomsoft: [https://modula3.elegosoft.com/cm3/doc/help/bib.html Modula-3; an annotated bibliography] | ||
* G. Nelson (ed.): System Programming with Modula-3 | * G. Nelson (ed.): ''System Programming with Modula-3'' - Prentice Hall 1990, ISBN 0-13-590464-1 | ||
* 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: [http://www.professeurs.polymtl.ca/michel.dagenais/pkg/BDAM3alpha.ps 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] | * 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] | * 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)] | * 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 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] | ||
;Introductory material | ;Introductory material | ||
* Swaminathan Sankararaman and Bojan Durickovic: [http://pub.bojand.org/modula3.pdf Modula-3 - CS 520 Final Report] - 2008 | * Swaminathan Sankararaman and Bojan Durickovic: [http://pub.bojand.org/modula3.pdf Modula-3 - CS 520 Final Report] - 2008 | ||
;Obliq | ;Obliq | ||
* Luca Cardelli: [http://lucacardelli.name/Papers/ObliqPaper.A4.pdf Obliq - A language with distributed scope] | * Luca Cardelli: [http://lucacardelli.name/Papers/ObliqPaper.A4.pdf Obliq - A language with distributed scope] - 1994 | ||
* Luca Cardelli: [http://lucacardelli.name/Papers/Obliq.A4.pdf A Language with Distributed Scope] | * Luca Cardelli: [http://lucacardelli.name/Papers/Obliq.A4.pdf A Language with Distributed Scope] - 1995 | ||
* Luca Cardelli and Krishna A. Bharat: [http://lucacardelli.name/Papers/DistributedApps.A4.pdf Distributed Applications in a Hypermedia Setting] | * Luca Cardelli and Krishna A. Bharat: [http://lucacardelli.name/Papers/DistributedApps.A4.pdf Distributed Applications in a Hypermedia Setting] - 1995 | ||
* Luca Cardelli: [http://lucacardelli.name/Papers/GlobalComputation.A4.pdf Global Computation] | * Luca Cardelli: [http://lucacardelli.name/Papers/GlobalComputation.A4.pdf Global Computation] - 1996 | ||
* Luca Cardelli: [http://lucacardelli.name/Papers/MobileComputationPosition.pdf Mobile Computation (Position Paper)] | * Luca Cardelli: [http://lucacardelli.name/Papers/MobileComputationPosition.pdf Mobile Computation (Position Paper)] - 1995 - Obliq related | ||
* Luca Cardelli and Krishna A. Bharat: [http://lucacardelli.name/Papers/Migration.A4.pdf Migratory Applications] | * Luca Cardelli and Krishna A. Bharat: [http://lucacardelli.name/Papers/Migration.A4.pdf Migratory Applications] - 1997 | ||
* Luca Cardelli and Rowan Davis: [http://lucacardelli.name/Papers/ServiceCombinators.US.pdf Service Combinators for Web Computing] | * Luca Cardelli and Rowan Davis: [http://lucacardelli.name/Papers/ServiceCombinators.US.pdf Service Combinators for Web Computing] - 1997/9 - Obliq related. | ||
;Modula-3* | ;Modula-3* | ||
Line 43: | Line 43: | ||
==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: [news:comp.lang.modula3 comp.lang.modula3] - Very low volume | |||
==Standards== | ==Standards== |
Revision as of 13:31, 25 January 2017

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.
- Obliq
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).
OS/2 Implementations
- SRC Modula 3 - Open source - Discontinued
- Modula 3 Reboot - Open source - Current?
Text editors with Modula 3 support
- jEdit - Java based editor - Modula 3 syntax highlighting built in - Current.
DOS Implementations
- SRC Modula 3 - Open source - Discontinued
- M3PC-Klagenfurt - Open source - Discontinued
Publications
- Elcomsoft: Modula-3; an annotated bibliography
- G. Nelson (ed.): System Programming with Modula-3 - Prentice Hall 1990, ISBN 0-13-590464-1
- Joseph Bergin: Object-Oriented Data Abstraction in Modula-3 - 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: The Modula-3 Type System
- Luca Cardelli: Typeful Programming
- Luca Cardelli, James Donahue, Lucielle Glassman, Mick Jordan, Bill Kalsow and Greg Nelson: The Modula-3 Report (Revised) - 1989
- Emin G?un Sirer, Stefan Savage, Przemyslaw Pardyak, Greg P. DeFouw, Mary Ann Alapat & Brian N. Bershad: Writing an Operating System with Modula-3
- Introductory material
- Swaminathan Sankararaman and Bojan Durickovic: Modula-3 - CS 520 Final Report - 2008
- Obliq
- Luca Cardelli: Obliq - A language with distributed scope - 1994
- Luca Cardelli: A Language with Distributed Scope - 1995
- Luca Cardelli and Krishna A. Bharat: Distributed Applications in a Hypermedia Setting - 1995
- Luca Cardelli: Global Computation - 1996
- Luca Cardelli: Mobile Computation (Position Paper) - 1995 - Obliq related
- Luca Cardelli and Krishna A. Bharat: Migratory Applications - 1997
- Luca Cardelli and Rowan Davis: Service Combinators for Web Computing - 1997/9 - Obliq related.
- Modula-3*
- Ernst A. Heinz: MODULA-3*: An Efficiently compilable extension of Modula-3 for problem-oriented explicitly parallel programming
Links
- Modula-3 Org - Info and links on the Modula 3 language.
- USENET: comp.lang.modula3 - Very low volume
Standards
- The revised version of the original Modula-3 report and the associated paper below
- Some useful Modula-3 interfaces.