Modula-3
From Wikipedia, the free encyclopedia
Modula-3 is a programming language conceived as a successor to an upgraded version of Modula-2 known as Modula-2+. While it has been influential in research circles (influencing the designs of languages such as Java, C#, Python[8] and Nim) 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 at the Digital Equipment Corporation (DEC) Systems Research Center (SRC) and the Olivetti Research Center (ORC) in the late 1980s.
Paradigms | imperative, structured, procedural, modular, concurrent, object-oriented, generic |
---|---|
Family | Wirth/Modula |
Designed by | Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan; Bill Kalsow, Greg Nelson |
Developers | DEC Olivetti elego Software Solutions GmbH |
First appeared | 1988; 36 years ago (1988) |
Stable release | 5.8.6
/ July 14, 2010; 14 years ago (2010-07-14) |
Preview release | 5.8.6
/ July 14, 2010; 14 years ago (2010-07-14) |
Typing discipline | strong, static, safe or if unsafe explicitly safe isolated |
Scope | Lexical |
Platform | IA-32, x86-64, PowerPC, SPARC |
OS | Cross-platform: FreeBSD, Linux, Darwin, SunOS |
Website | www |
Major implementations | |
SRC Modula-3, CM3,[1] PM3,[2] EZM3,[3] M3/PC Klagenfurt[4] | |
Influenced by | |
ALGOL, Euclid, Mesa, Modula-2, Modula-2+, Oberon, Pascal | |
Influenced | |
C#, Java, Nim,[5] OCaml, Rust,[6] Python[7] |
Modula-3's main features are modularity, simplicity and safety while preserving the power of a systems-programming language. Modula-3 aimed to continue the 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 templates), multithreading, exception handling, 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.