Modula-2
   HOME

TheInfoList



OR:

Modula-2 is a structured, procedural
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
developed between 1977 and 1985/8 by Niklaus Wirth at
ETH Zurich (colloquially) , former_name = eidgenössische polytechnische Schule , image = ETHZ.JPG , image_size = , established = , type = Public , budget = CHF 1.896 billion (2021) , rector = Günther Dissertori , president = Joël Mesot , a ...
. It was created as the language for the
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
and
application software Application may refer to: Mathematics and computing * Application software, computer software designed to help the user to perform specific tasks ** Application layer, an abstraction layer that specifies protocols and interface methods used in a ...
of the Lilith personal
workstation A workstation is a special computer designed for technical or scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating systems. The term ''workst ...
. It was later used for programming outside the context of the Lilith. Wirth viewed Modula-2 as a successor to his earlier programming languages
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
and Modula. The main concepts are: # The module as a compiling unit for separate compiling # The coroutine as the basic building block for concurrent processes # Types and procedures that allow access to machine-specific data The language design was influenced by the Mesa language and the Xerox Alto, both from
Xerox PARC PARC (Palo Alto Research Center; formerly Xerox PARC) is a research and development company in Palo Alto, California. Founded in 1969 by Jacob E. "Jack" Goldman, chief scientist of Xerox Corporation, the company was originally a division of Xero ...
, that Wirth saw during his 1976
sabbatical A sabbatical (from the Hebrew: (i.e., Sabbath); in Latin ; Greek: ) is a rest or break from work. The concept of the sabbatical is based on the Biblical practice of '' shmita'' (sabbatical year), which is related to agriculture. According ...
year there. Page 4. The computer magazine ''
Byte The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable uni ...
'' devoted the August 1984 issue to the language and its surrounding environment. Modula-2 was followed by Modula-3, and later by the Oberon series of languages.


Description

Modula-2 is a general purpose
procedural language Procedural programming is a programming paradigm, derived from imperative programming, based on the concept of the '' procedure call''. Procedures (a type of routine or subroutine) simply contain a series of computational steps to be carrie ...
suitable for both systems programming and applications programming. The syntax is based on Wirth's earlier language,
Pascal Pascal, Pascal's or PASCAL may refer to: People and fictional characters * Pascal (given name), including a list of people with the name * Pascal (surname), including a list of people and fictional characters with the name ** Blaise Pascal, Frenc ...
, with some elements and syntactic ambiguities removed. The ''module'' concept, designed to support separate compilation and data abstraction; and direct language support for multiprogramming were added. The language allows the use of one-pass compilers. Such a
compiler In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs tha ...
by Gutknecht and Wirth was about four times faster than earlier multi-pass compilers. Here is an example of the source code for the "Hello world" program: MODULE Hello; FROM STextIO IMPORT WriteString; BEGIN WriteString("Hello World!") END Hello. A Modula-2 ''module'' may be used to encapsulate a set of related subprograms and data structures, and restrict their visibility from other parts of the program. Modula-2 programs are composed of modules, each of which is made up of two parts: a ''definition module'', the interface portion, which contains only those parts of the subsystem that are ''exported'' (visible to other modules), and an ''implementation module'', which contains the working code that is internal to the module. The language has strict
scope Scope or scopes may refer to: People with the surname * Jamie Scope (born 1986), English footballer * John T. Scopes (1900–1970), central figure in the Scopes Trial regarding the teaching of evolution Arts, media, and entertainment * Cinema ...
control. Except for standard identifiers, no
object Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ...
from the outside is visible inside a module unless explicitly imported; no internal module object is visible from the outside unless explicitly exported. Suppose module M1 exports objects a, b, c, and P by enumerating its identifiers in an explicit export list DEFINITION MODULE M1; EXPORT QUALIFIED a, b, c, P; ... Then the objects a, b,c, and P from module M1 are known outside module M1 as M1.a, M1.b, M1.c, and M1.P. They are exported in a ''qualified'' manner to the outside (assuming module M1 is global). The exporting module's name, i.e. M1, is used as a qualifier followed by the object's name. Suppose module M2 contains the following IMPORT declaration MODULE M2; IMPORT M1; ... Then this means that the objects exported by module M1 to the outside of its enclosing program can now be used inside module M2. They are referenced in a ''qualified'' manner: M1.a, M1.b, M1.c, and M1.P. Example: ... M1.a := 0; M1.c := M1.P(M1.a + M1.b); ... Qualified export avoids name clashes. For example, if another module M3 exports an object called P, then the two objects can be distinguished since M1.P differs from M3.P. It does not matter that both objects are called P inside their exporting modules M1 and M3. An alternative method exists. Suppose module M4 is formulated as this: MODULE M4; FROM M1 IMPORT a, b, c, P; This means that objects exported by module M1 to the outside can again be used inside module M4, but now by mere references to the exported identifiers in an ''unqualified'' manner as: a, b, c, and P. Example: ... a := 0; c := P(a + b); ... This method of import is usable if there are no name clashes. It allows variables and other objects to be used outside their exporting module in the same ''unqualified'', manner as inside the exporting module. The export and import rules not only safeguard objects against unwanted access, but also allow a cross-reference of the definition of every identifier in a program to be created. This property helps with the maintenance of large programs containing many modules. The language provides for single-processor concurrency (
monitors Monitor or monitor may refer to: Places * Monitor, Alberta * Monitor, Indiana, town in the United States * Monitor, Kentucky * Monitor, Oregon, unincorporated community in the United States * Monitor, Washington * Monitor, Logan County, West ...
, coroutines and explicit transfer of control) and for hardware access (absolute addresses, bit manipulation, and interrupts). It uses a nominal type system.


Dialects

There are two major dialects of Modula-2. The first is ''PIM'', named for the book ''Programming in Modula-2'' by Niklaus Wirth. There were three major editions of PIM: the second, third (corrected), and fourth. Each describes slight variants of the language. The second major dialect is ''ISO'', named for the standardization effort by the
International Organization for Standardization The International Organization for Standardization (ISO ) is an international standard development organization composed of representatives from the national standards organizations of member countries. Membership requirements are given in A ...
. Here are a few of the differences among them. * ''PIM2'' (1983) ** Required explicit EXPORT clause in definition modules. ** Function SIZE needs to be imported from module SYSTEM * ''PIM3'' (1985) ** Removed the EXPORT clause from definition modules following the observation that everything within a definition module defines the interface to that module, hence the EXPORT clause was redundant. ** Function SIZE is pervasive (visible in any scope without import) * ''PIM4'' (1988) ** Specified the behaviour of the MOD operator when the operands are negative. ** Required all ARRAY OF CHAR strings to be terminated by ASCII NUL, even if the string fits exactly into its array. * ''ISO'' (1996, 1998) ** ISO Modula-2 resolved most of the ambiguities in PIM Modula-2. It added the data types COMPLEX and LONGCOMPLEX, exceptions, module termination (FINALLY clause) and a complete standard
input/output In computing, input/output (I/O, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, possibly a human or another information processing system. Inputs are the signals ...
(I/O)
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vi ...
. There are many minor differences and clarifications.


Supersets

There are several supersets of Modula-2 with language extensions for specific application domains: * PIM supersets *
Canterbury Modula-2
extended with Oberon-like extensible records
his has been withdrawn and is no longer available anywhere His or HIS may refer to: Computing * Hightech Information System, a Hong Kong graphics card company * Honeywell Information Systems * Hybrid intelligent system * Microsoft Host Integration Server Education * Hangzhou International School, ...
** Modula-2+, extended with preemptive threads and exceptions *
Modula-2*
parallel extension *
Modula-P
another parallel extension ** Modula–Prolog, adds a Prolog layer ** Modula/R, adds
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relati ...
extensions ** Modula-GM, adds
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded ...
extensions * ISO supersets ** ISO10514-2, adds an
object-oriented programming Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
layermodula2.org, 5. Where can I get information about ISO Modula-2?
/ref> ** ISO10514-3, adds a generic programming (generics) layer * IEC supersets *
Mod51
extended with IEC1131 constructs for embedded development


Derivatives

There are several derivative languages that resemble Modula-2 very closely but are new languages in their own right. Most are different languages with different purposes and with strengths and weaknesses of their own: * Modula-3, developed by a team of ex-Xerox employees who had moved to DEC and Olivetti * Oberon, developed at ETH Zürich for System Oberonbr>available online
*
Oberon-2 Oberon-2 is an extension of the original Oberon programming language that adds limited reflection and object-oriented programming facilities, open arrays as pointer base types, read-only field export, and reintroduces the FOR loop from Modula-2. ...
, Oberon with OO extensions *
Active Oberon Active Oberon is a general purpose programming language developed during 1996-1998 by the group around Niklaus Wirth and Jürg Gutknecht at the Swiss Federal Institute of Technology in Zürich ( ETH Zurich). It is an extension of the programming ...
, yet another object-oriented Extension of Oberon, developed also at ETH with the main objective to support parallel programming on multiprocessor and multicore systems. * Parallaxis, a language for machine-independent data-parallel programming * Umbriel, developed by Pat Terry as a teaching language * YAFL, a research language by Darius Blasband Many other current programming languages have adopted features of Modula-2.


Language elements


Reserved words

PIM ,3,4defines 40 reserved words:
AND         ELSIF           LOOP       REPEAT
ARRAY       END             MOD        RETURN
BEGIN       EXIT            MODULE     SET
BY          EXPORT          NOT        THEN
CASE        FOR             OF         TO
CONST       FROM            OR         TYPE
DEFINITION  IF              POINTER    UNTIL
DIV         IMPLEMENTATION  PROCEDURE  VAR
DO          IMPORT          QUALIFIED  WHILE
ELSE        IN              RECORD     WITH


Built-in identifiers

PIM ,4defines 29 built-in
identifier An identifier is a name that identifies (that is, labels the identity of) either a unique object or a unique ''class'' of objects, where the "object" or class may be an idea, physical countable object (or class thereof), or physical noncountable ...
s:
ABS         EXCL            LONGINT    REAL
BITSET      FALSE           LONGREAL   SIZE
BOOLEAN     FLOAT           MAX        TRUE
CAP         HALT            MIN        TRUNC
CARDINAL    HIGH            NIL        VAL
CHAR        INC             ODD
CHR         INCL            ORD
DEC         INTEGER         PROC


Embedded system use

Modula-2 is used to program many
embedded system An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is ''embedded ...
s.


Cambridge Modula-2

Cambridge Modula-2 by Cambridge Microprocessor Systems is based on a subset of PIM4 with language extensions for embedded development. The compiler runs on DOS and it generates code for
Motorola 68000 series The Motorola 68000 series (also known as 680x0, m68000, m68k, or 68k) is a family of 32-bit complex instruction set computer (CISC) microprocessors. During the 1980s and early 1990s, they were popular in personal computers and workstations and ...
(M68k) based embedded microcontrollers running a MINOS operating system.


Mod51

Mod51 by Mandeno Granville Electronics is based on ISO Modula-2 with language extensions for embedded development following IEC1131, an industry standard for
programmable logic controller A programmable logic controller (PLC) or programmable controller is an industrial computer that has been ruggedized and adapted for the control of manufacturing processes, such as assembly lines, machines, robotic devices, or any activity t ...
s (PLC) closely related to Modula-2. The Mod51 compiler generates standalone code for 80C51 based microcontrollers.


Modula-GM

Delco Electronics, then a subsidiary of GM Hughes Electronics, developed a version of Modula-2 for embedded control systems starting in 1985. Delco named it Modula-GM. It was the first
high-level programming language In computer science, a high-level programming language is a programming language with strong abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ''elements'', be easier to u ...
used to replace machine code (language) for embedded systems in Delco's ''engine control units'' (ECUs). This was significant because Delco was producing over 28,000 ECUs per day in 1988 for GM. This was then the world's largest producer of ECUs. The first experimental use of Modula-GM in an embedded controller was in the 1985 Antilock Braking System Controller which was based on the Motorola 68xxx microprocessor, and in 1993 Gen-4 ECU used by the Champ Car World Series Championship Auto Racing Teams (CART) and Indy Racing League (IRL) teams. The first production use of Modula-GM was its use in GM trucks starting with the 1990 model year ''vehicle control module'' (VCM) used to manage GM Powertrain's Vortec engines. Modula-GM was also used on all ECUs for GM's 90° Buick V6 engine family 3800 Series II used in the 1997-2005 model year Buick Park Avenue. The Modula-GM compilers and associated software management tools were sourced by Delco from Intermetrics. Modula-2 was selected as the basis for Delco's high level language because of its many strengths over other alternative language choices in 1986. After Delco Electronics was spun off from GM (with other component divisions) to form Delphi Automotive Systems in 1995, global sourcing required that a non-proprietary high-level software language be used. ECU embedded software now developed at Delphi is compiled with commercial compilers for the language C.


Russian radionavigation satellites

The satellites of the Russian radionavigation-satellite service framework
GLONASS GLONASS (russian: ГЛОНАСС, label=none, ; rus, links=no, Глобальная навигационная спутниковая система, r=Global'naya Navigatsionnaya Sputnikovaya Sistema, t=Global Navigation Satellite System) is ...
, similar to the United States
Global Positioning System The Global Positioning System (GPS), originally Navstar GPS, is a satellite-based radionavigation system owned by the United States government and operated by the United States Space Force. It is one of the global navigation satellite ...
(GPS), are programmed in Modula-2.


Compilers

* Amsterdam Compiler Kit (ACK) Modula-2 – for MINIX;
freeware Freeware is software, most often proprietary, that is distributed at no monetary cost to the end user. There is no agreed-upon set of rights, license, or EULA that defines ''freeware'' unambiguously; every publisher defines its own rules for the ...
* ADW Modula-2 – for Windows, ISO compliant, ISO/IEC 10514-1, ISO/IEC 10514-2 (OO extension), ISO/IEC 10514-3 (Generic extension); freeware * Aglet Modula-2 – for AmigaOS 4.0 for
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple– IBM– ...
; freeware * Fitted Software Tools (FST) Modula-2 – for DOS; freeware * Gardens Point Modula-2 (GPM) – for BSD, Linux, OS/2, Solaris; ISO compliant; freeware, as of 30 July 2014 * Gardens Point Modula-2 (GPM/CLR) – for
.NET Framework The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
; freeware * GNU Modula-2 – for GCC platforms, version 1.0 released December 11, 2010; compliance: PIM2, PIM3, PIM4, ISO;
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
,
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
(GPL) * Logitech SA - they also had a "Real Time Kernel" for embedded usage (1987) * M2Amiga – for
Amiga Amiga is a family of personal computers introduced by Commodore International, Commodore in 1985. The original model is one of a number of mid-1980s computers with 16- or 32-bit processors, 256 KB or more of RAM, mouse-based GUIs, and sign ...
;
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, n ...
* M2M – by N. Wirth and collaborators from ETH Zurich, cross-platform, generates M-code for
virtual machine In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
; freeware * MacMETH – by N. Wirth and collaborators from ETH Zurich for Macintosh, Classic only; freeware * Mod51 – for the Intel 80x51 microcontroller family, ISO compliant, IEC1132 extensions; proprietary software * Megamax Modula-2 – for
Atari ST The Atari ST is a line of personal computers from Atari Corporation and the successor to the Atari 8-bit family. The initial model, the Atari 520ST, had limited release in April–June 1985 and was widely available in July. It was the first per ...
with documentation in German only; freeware * Modula-2 R10 – reference compiler for this Modula; open-source, peer review * ModulaWare – for
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
( VAX and
Alpha Alpha (uppercase , lowercase ; grc, ἄλφα, ''álpha'', or ell, άλφα, álfa) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter aleph , whi ...
), ISO compliant; proprietary software * ORCA/Modula-2 – for Apple IIGS by The Byte Works for the Apple Programmer's Workshop * p1 Modula-2 – for
Macintosh The Mac (known as Macintosh until 1999) is a family of personal computers designed and marketed by Apple Inc., Apple Inc. Macs are known for their ease of use and minimalist designs, and are popular among students, creative professionals, and ...
, Classic and
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and la ...
(
PowerPC PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple– IBM– ...
and Carbon (API) only), ISO compliant; proprietary software * MOCKA – for various platforms, PIM compliant; commercial, freeware Linux/BSD versions * TDI Modula-2 – for
Atari ST The Atari ST is a line of personal computers from Atari Corporation and the successor to the Atari 8-bit family. The initial model, the Atari 520ST, had limited release in April–June 1985 and was widely available in July. It was the first per ...
, by TDI Software * Terra M2VMS – for
OpenVMS OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Ope ...
( VAX and
Alpha Alpha (uppercase , lowercase ; grc, ἄλφα, ''álpha'', or ell, άλφα, álfa) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter aleph , whi ...
), PIM compliant; proprietary software * m2c, Ulm Modula-2 System – for Solaris (Sun
SPARC SPARC (Scalable Processor Architecture) is a reduced instruction set computer (RISC) instruction set architecture originally developed by Sun Microsystems. Its design was strongly influenced by the experimental Berkeley RISC system develope ...
and Motorola 68k); free software,
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
(GPL) * XDS – ISO compliant, TopSpeed compatible library: ''Native XDS-x86'' for x86 (Windows and Linux); ''XDS-C'' for Windows and Linux (16- and 32-bit versions), targets C ( K&R & ANSI); freeware


Turbo Modula-2

Turbo Modula-2 was a compiler and an
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools ...
for
MS-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few o ...
developed, but not published, by
Borland Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
. Jensen and Partners, which included Borland cofounder Niels Jensen, bought the unreleased codebase and turned it into TopSpeed Modula-2. It was eventually sold to Clarion, now owned by SoftVelocity, which still offers the Modula-2 compiler as part of its Clarion product line. A Zilog Z80
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/ 85-based microcomputers by Gary Kildall of Digital Research, Inc. Initi ...
version of Turbo Modula-2 was briefly marketed by Echelon under license from Borland. A companion release for Hitachi HD64180 was sold by Micromint as a development tool for their SB-180 single-board computer.


IBM Modula-2

IBM had a Modula-2 compiler for internal use which ran on both OS/2 and
AIX Aix or AIX may refer to: Computing * AIX, a line of IBM computer operating systems *An Alternate Index, for a Virtual Storage Access Method Key Sequenced Data Set * Athens Internet Exchange, a European Internet exchange point Places Belgiu ...
, and had first class support in IBM's E2 editor. IBM Modula-2 was used for parts of the
OS/400 IBM i (the ''i'' standing for ''integrated'') is an operating system developed by IBM for IBM Power Systems. It was originally released in 1988 as OS/400, as the sole operating system of the IBM AS/400 line of systems. It was renamed to i5/OS ...
''Vertical Licensed Internal Code'' (effectively the kernel of OS/400). This code was mostly replaced with C++ when OS/400 was ported to the IBM RS64 processor family, although some remains in modern releases of the operating system. A
Motorola 68000 The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Secto ...
backend also existed, which may have been used in embedded systems products.


Operating systems

Modula-2 is used to program some
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
s (OSs). The Modula-2 module structure and support are used directly in two related OSs. The OS named '' Medos-2'', for the Lilith workstation, was developed at ETH Zurich, by Svend Erik Knudsen with advice from Wirth. It is a single user, object-oriented operating system built from Modula-2 modules. Reprint. The OS named '' Excelsior'', for the Kronos workstation, was developed by the Academy of Sciences of the Soviet Union, Siberian branch,
Novosibirsk Novosibirsk (, also ; rus, Новосиби́рск, p=nəvəsʲɪˈbʲirsk, a=ru-Новосибирск.ogg) is the largest city and administrative centre of Novosibirsk Oblast and Siberian Federal District in Russia. As of the 2021 Censu ...
Computing Center, Modular Asynchronous Developable Systems (MARS) project, Kronos Research Group (KRG). It is a single user system based on Modula-2 modules.


Books

* * * * * * Uses ISO-standard Modula-2.


References


External links

* {{Authority control Modula programming language family Systems programming languages Programming languages created in 1978 Programming languages with an ISO standard Statically typed programming languages High-level programming languages