Jump to content

Modula-3: Difference between revisions

From EDM2
Ak120 (talk | contribs)
Ak120 (talk | contribs)
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 [[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.
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).


==A list of OS/2 implementations of Modula-3==
==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?


====OS/2 text editors with Modula 3 support====
==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.


==A list of DOS implementations of Modula-3==
==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 - 1990 - Prentice Hall - ISBN 0-13-590464-1
* 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] - 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 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 - In PDF format
* 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] - In PDF format - 1994.
* 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] - In [[PDF]] format - 1995.
* 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] - In PDF format - 1995.
* 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] - In PDF format - 1996.
* Luca Cardelli: [http://lucacardelli.name/Papers/GlobalComputation.A4.pdf Global Computation] - 1996
* Luca Cardelli: [http://lucacardelli.name/Papers/MobileComputationPosition.pdf Mobile Computation (Position Paper)] - In PDF format - 1995 - Obliq related.
* 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] - In PDF format - 1997
* 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] - In PDF format - 1997/9 - Obliq related.
* 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====
* USENET: [news:comp.lang.modula3 comp.lang.modula3] - Very low volume
* [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.


==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

Introductory material
Obliq
Modula-3*

Links

Standards