Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Modula-3
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Programming language}} {{Infobox programming language | name = Modula-3 | logo = Modula-3.svg | paradigms = [[Imperative programming|imperative]], [[Structured programming|structured]], [[Procedural programming|procedural]], [[Modular programming|modular]], [[Concurrent computing|concurrent]], [[object-oriented programming|object-oriented]], [[generic programming|generic]] | typing = [[Strong and weak typing|strong]], [[Static typing|static]], [[Type system#Safely and unsafely typed systems|safe]] or if [[Type system#Safely and unsafely typed systems|unsafe]] explicitly safe isolated | scope = [[Scope (computer science)|Lexical]] | family = [[Niklaus Wirth|Wirth]]/[[Modula]] | designers = [[Luca Cardelli]], James Donahue, Lucille Glassman, Mick Jordan; Bill Kalsow, [[Greg Nelson (computer scientist)|Greg Nelson]] | developers = [[Digital Equipment Corporation|DEC]]<br/>[[Olivetti]]<br/>{{Not a typo|elego}} Software Solutions GmbH | released = {{Start date and age|1988}} | latest release version = 5.8.6 | latest release date = {{Start date and age|2010|07|14}} | latest preview version = 5.8.6 | latest preview date = {{Start date and age|2010|07|14}} | implementations = [[DEC Systems Research Center|SRC]] Modula-3, CM3,<ref>{{Cite web |url=https://modula3.elegosoft.com/cm3/ |title=Critical Mass Modula-3 (CM3) |website=Critical Mass Modula-3 |publisher=elego Software Solutions GmbH |access-date=2020-03-21}}</ref> PM3,<ref>{{cite web |url=https://modula3.elegosoft.com/pm3/ |title=Polytechnique Montréal Modula-3 (PM3): What is it |author=<!--Unstated--> |date=<!--Undated--> |website=Polytechnique Montréal Modula-3 |publisher=elego Software Solutions GmbH |access-date=2020-03-21}}</ref> EZM3,<ref>{{cite web |url=http://www.cvsup.org/ezm3/ |title=Ezm3: An Easier Modula-3 Distribution |last=Polstra |first=John D. |date=November 9, 2006 |website=CVSup.org |url-status=dead |archive-url=https://web.archive.org/web/20130410151327/http://www.cvsup.org/ezm3/ |archive-date=April 10, 2013 |access-date=2020-03-21}}</ref> M3/PC Klagenfurt<ref>{{cite web |url=http://www.ifi.uni-klu.ac.at/Modula-3/m3pc/m3pc.html |title=M3/PC Klagenfurt 96: a Modula-3 environment for MS-DOS |last=Weich |first=Carsten |date=<!-- Undated. --> |website=Department of Informatics |publisher=University of Klagenfurt |url-status=dead |archive-url=https://web.archive.org/web/20000520073936/http://www.ifi.uni-klu.ac.at/Modula-3/m3pc/m3pc.html |archive-date=20 May 2000 |access-date=2020-03-21}}</ref> | influenced by = [[ALGOL]], [[Euclid (programming language)|Euclid]], [[Mesa (programming language)|Mesa]], [[Modula-2]], [[Modula-2+]], [[Oberon (programming language)|Oberon]], [[Pascal (programming language)|Pascal]] | influenced = [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Nim (programming language)|Nim]],<ref>{{Cite web |url=http://nim-lang.org/question.html |title=Frequently Asked Questions |last1=Picheta |first1=Dominik |last2=Locurcio |first2=Hugo |date=<!-- Undated. --> |access-date=2020-03-21}}</ref> [[OCaml]], [[Rust (programming language)|Rust]],<ref>{{Cite web |url=https://www.reddit.com/r/rust/comments/cycjou/i_just_learned_about_modula3_a_language_that_had/|title=R/Rust - I just learned about Modula-3, a language that had a lot of similar goals to Rust, and there was even an experimental OS that relied on the safety provided by the language |date=September 2019 }}</ref> [[Python (programming language)|Python]]<ref>{{Cite web |url=https://www.python.org/doc/essays/foreword/ |title=Programming Python: Foreword (1st ed.) |last=van Rossum |first=Guido |date=May 1996 |website=Python.org |access-date=2020-03-21}}</ref> | platform = [[IA-32]], [[x86-64]], [[PowerPC]], [[SPARC]] | operating system = [[Cross-platform]]: [[FreeBSD]], [[Linux]], [[Darwin (operating system)|Darwin]], [[SunOS]] | website = {{URL|www.modula3.org}} }} '''Modula-3''' is a [[programming language]] conceived as a successor to an upgraded version of [[Modula-2]] known as [[Modula-2+]]. It has been influential in research circles (influencing the designs of languages such as [[Java (programming language)|Java]], [[C Sharp (programming language)|C#]], [[Python (programming language)|Python]]<ref>{{Cite web |url=https://docs.python.org/3/faq/design.html#why-self |title=Design and History FAQ: Why must 'self' be used explicitly in method definitions and calls? |date=March 21, 2020 |website=Python.org |access-date=2020-03-21}}</ref> and [[Nim (programming language)|Nim]]), but it has not been adopted widely in industry. It was designed by [[Luca Cardelli]], James Donahue, Lucille Glassman, Mick Jordan (before at the [[Olivetti]] Software Technology Laboratory), Bill Kalsow and [[Greg Nelson (computer scientist)|Greg Nelson]] at the [[Digital Equipment Corporation]] (DEC) [[DEC Systems Research Center|Systems Research Center]] (SRC) and the [[Olivetti]] Research Center (ORC) in the late 1980s. Modula-3's main features are [[modular programming|modularity]], simplicity and safety while preserving the power of a systems-programming language. Modula-3 aimed to continue the [[Pascal (programming language)|Pascal]] tradition of type safety, while introducing new constructs for practical real-world programming. In particular Modula-3 added support for [[generic programming]] (similar to [[Template (programming)|templates]]), [[Thread (computer science)|multithreading]], [[exception handling]], [[Garbage collection (computer science)|garbage collection]], [[object-oriented programming]], partial revelation, and explicit marking of unsafe code. The design goal of Modula-3 was a language that implements the most important features of modern [[imperative programming]] languages in quite basic forms. Thus allegedly dangerous and complicating features such as [[multiple inheritance]] and [[operator overloading]] were omitted.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)