Modula-2

Modula-2
Paradigmen Imperativ, strukturiert, modular, Daten und Verfahren verstecken, gleichzeitig
Familie Wirth Modula
Entworfen von Niklaus Wirth
Erstmals erschienen 1978; Vor 44 Jahren
Disziplin tippen Statisch, stark, sicher
Zielfernrohr Lexikalisch (statisch)
Plattform Lilith (AMD 2901)
OS Plattformübergreifend
Dateiname -Erweiterungen .mod, .m2, .def, .mod, .def, .mi, .md
Webseite www.modula2.org
Haupt Implementierungen
ETH -Compiler Geschrieben von Niklaus Wirth
GNU Modula-2
ADW Modula-2
Dialekte
PIM2, PIM3, PIM4, ISO
Beeinflusst von
Modula, Mesa, Pascal, Algol w, Euklid
Beeinflusst
Modula-3, Oberon, Ada, Forran 90, Lua, Samen7, Zonnon, Modula-gm

Modula-2 ist ein strukturiertes Verfahren Programmiersprache entwickelt zwischen 1977 und 1985/8 von Niklaus Wirth bei Eth Zürich. Es wurde als Sprache für die erstellt Betriebssystem und Anwendungssoftware des Lilith persönlich Arbeitsplatz.[1] Es wurde später zum Programmieren außerhalb des Lilith -Kontexts verwendet.

Wirth betrachtete Modula-2 als Nachfolger seiner früheren Programmiersprachen Pascal und Modula.[2][3] Die Hauptkonzepte sind:

  1. Das Modul als Kompilieneinheit für separate Kompilien
  2. Die Coroutine als grundlegende Baustein für gleichzeitige Prozesse
  3. Typen und Verfahren, die den Zugriff auf maschinspezifische Daten ermöglichen

Das Sprachdesign wurde von der beeinflusst Mesa Sprache und die Xerox Alto, beide von Xerox Parc, diese Wirtschaft sah während seiner 1976 Sabbatical Jahr dort.[4] Das Computermagazin Byte widmete die Ausgabe von August 1984 der Sprache und ihrer Umgebung.[5]

Modula-2 folgte von Modula-3und später von der Oberon Reihe von Sprachen.

Beschreibung

Modula-2 ist ein allgemeiner Zweck Verfahrenssprache geeignet für beide Systemprogrammierung und Anwendungsprogrammierung. Die Syntax basiert auf Wirths früherer Sprache, Pascalmit einigen Elementen und syntaktischen Ambiguitäten entfernt. Das Modul Konzept, die zur Unterstützung separater Kompilierungs- und Datenabstraktion unterstützt werden; und direkte Sprachunterstützung für Multiprogrammierung wurden hinzugefügt.

Die Sprache ermöglicht die Verwendung von Ein-Pass-Compiler. So ein Compiler von Gutknecht und Wirth war ungefähr viermal schneller als früher Multi-Pass-Compiler.[6]

Hier ist ein Beispiel für den Quellcode für das Programm "Hello World":

MODUL Hallo; AUS Stextio IMPORTIEREN Writestring; START  Writestring("Hallo Welt!") ENDE Hallo. 

Ein Modula-2 Modul Kann verwendet werden, um eine Reihe verwandter Unterprogramme und Datenstrukturen zu verkapulieren und ihre Sichtbarkeit aus anderen Teilen des Programms einzuschränken. Modula-2-Programme bestehen aus Modulen, die jeweils aus zwei Teilen bestehen: a Definitionsmodul, der Schnittstellenabschnitt, der nur die Teile des Subsystems enthält, die sind exportiert (sichtbar für andere Module) und eine Implementierungsmodul, der den Arbeitscode enthält, der im Modul intern ist.

Die Sprache hat streng Umfang Kontrolle. Mit Ausnahme von Standardkennungen, nein Objekt Von außen ist in einem Modul sichtbar, sofern nicht ausdrücklich importiert wird; Kein internes Modulobjekt ist von außen sichtbar, es sei denn, es wird ausdrücklich exportiert.

Angenommen, das Modul M1 exportiert die Objekte A, B, C und P durch Aufzistung seiner Kennungen in einer expliziten Exportliste

  DEFINITION MODUL M1;  EXPORT QUALIFIZIERT a, b, c, P;  ... 

Dann sind die Objekte A, B, C und P aus dem Modul M1 außerhalb des Moduls M1 als M1.A, M1.B, M1.C und M1.P. Sie werden in a exportiert qualifiziert Außenweise (unter der Annahme, dass das Modul M1 global ist). Der Name des Exportmoduls, d. H. M1, wird als Qualifikationsmerkmal des Objekts verwendet.

Angenommen, das Modul M2 enthält die folgende Importdeklaration

  MODUL M2;  IMPORTIEREN M1;  ... 

Dann bedeutet dies, dass die vom Modul M1 exportierten Objekte jetzt innerhalb des Moduls M2 verwendet werden können. Sie werden in einem verwiesen qualifiziert Art und Weise: M1.A, M1.B, M1.C und M1.P. Beispiel:

  ...  M1.a : = 0;  M1.c : = M1.P(M1.a + M1.b);  ... 

Der qualifizierte Export vermeidet Namenskollisionen. Wenn beispielsweise ein anderes Modul M3 ein Objekt namens P exportiert, können die beiden Objekte unterschieden werden, da sich m1.p von M3.p. unterscheidet. Es spielt keine Rolle, dass beide Objekte in ihren Exportmodulen M1 und M3 als P bezeichnet werden.

Es gibt eine alternative Methode. Angenommen, das Modul M4 ist so formuliert:

  MODUL M4;  AUS M1 IMPORTIEREN a, b, c, P; 

Dies bedeutet, dass Objekte, die vom Modul M1 nach außen exportiert wurden unqualifiziert Art und Weise wie: A, B, C und P. Beispiel:

  ...  a : = 0;  c : = P(a + b);  ... 

Diese Importmethode ist nutzbar, wenn es keine Namensübereinstimmungen gibt. Es ermöglicht es, Variablen und andere Objekte außerhalb ihres Exportmoduls zu verwenden unqualifiziert, Art wie innerhalb des Exportmoduls.

Die Export- und Importregeln schützen nicht nur Objekte vor unerwünschtem Zugriff, sondern ermöglichen auch eine Kreuzreferenz der Definition jedes Kennungskenner in einem Programm. Diese Eigenschaft hilft bei der Wartung großer Programme mit vielen Modulen.

Die Sprache sorgt für die Parallelität mit Einzelprozessors (Monitore, Coroutinen und explizite Kontrollübertragung) und für Hardwarezugriff (absolute Adressen, Bitmanipulation und Interrupts). Es verwendet a Nominaltypsystem.

Dialekte

Es gibt zwei Hauptdialekte von Modula-2. Das erste ist Pim, benannt nach dem Buch Programmierung in Modula-2 von Niklaus Wirth.[4] Es gab drei Hauptausgaben von PIM: das zweite, dritte (korrigierte) und vierte. Jedes beschreibt geringfügige Varianten der Sprache. Der zweite Hauptdialekt ist ISO, benannt nach dem Standardisierungsaufwand von der Internationale Standardisierungsorganisation. Hier sind einige der Unterschiede zwischen ihnen.

  • PIM2 (1983)
    • Explizit erforderlich EXPORT Klausel in Definitionsmodulen.
    • Funktion GRÖSSE muss aus dem Modul importiert werden SYSTEM
  • PIM3 (1985)
    • Entfernte EXPORT Klausel aus Definitionsmodulen nach der Beobachtung, dass alles innerhalb eines Definitionsmoduls die Schnittstelle zu diesem Modul definiert, daher die EXPORT Klausel war überflüssig.
    • Funktion GRÖSSE ist allgegenwärtig (in jedem Bereich ohne Import sichtbar)
  • Pim4 (1988)
    • Spezifizierte das Verhalten der Mod Bediener, wenn die Operanden negativ sind.
    • Alles erforderlich Auswahl von Char Saiten, die von ASCII NUL beendet werden sollen, auch wenn die Saite genau in sein Array passt.
  • ISO (1996, 1998)
    • ISO Modula-2 löste die meisten Unklarheiten in PIM Modula-2 auf. Es fügte die Datentypen hinzu KOMPLEX und Langkomplex, Ausnahmen, Modulabschluss (ENDLICH Klausel) und ein vollständiger Standard Input-Output (I/o) Bibliothek. Es gibt viele geringfügige Unterschiede und Klarstellungen.[7]

Supersets

Es gibt mehrere Supersets von Modula-2 mit Spracherweiterungen für bestimmte Anwendungsbereiche:

Derivate

Es gibt mehrere abgeleitete Sprachen, die Modula-2 sehr genau ähneln, aber selbst neue Sprachen sind. Die meisten sind unterschiedliche Sprachen mit unterschiedlichen Zwecken und mit eigenen Stärken und Schwächen:

  • Modula-3, entwickelt von einem Team von Ex-Xerox-Mitarbeitern, die zu Dec und Olivetti gezogen waren[12]
  • Oberon, entwickelt at Eth Zürich für System Oberon[13] Online verfügbar.
  • Oberon-2Oberon mit OO -Erweiterungen[14]
  • Aktiver Oberon, noch eine objektorientierte Erweiterung von Oberon, entwickelt auch bei Eth mit dem Hauptziel, die parallele Programmierung auf Multiprozessor- und Multicore -Systemen zu unterstützen.
  • Parallaxis, eine Sprache für maschinenunabhängige datenparallele Programmierung[15]
  • Umbriel, entwickelt von Pat Terry als Lehrsprache[16]
  • YAFL, eine Forschungssprache von Darius Blasband[17]

Viele andere aktuelle Programmiersprachen haben Funktionen von Modula-2 übernommen.

Sprachelemente

Reservierte Wörter

PIM [2,3,4] definiert 40 reservierte Wörter:

Und Elsif Loop Repeat Array End Mod Return -Start -Exit -Modul, der durch Exportieren nicht festgelegt ist, dann ist der Fall von to const aus oder type Definition, wenn Zeiger bis Divimplementierungsverfahren var importiert wird, während sonst in Aufzeichnung mit dem Aufzeichnung qualifiziert ist

Eingebaute Kennungen

PIM [3,4] definiert 29 eingebaute Eingeborene Kennungen:

ABS excint longint Real Bitset Falsch Langzeitgröße Boolean Float Max True Cap Halt min Truncinal High nil val char Inc. ungerade chr.

Eingebettes Systemgebrauch

Modula-2 wird verwendet, um viele zu programmieren eingebettete Systeme.

Cambridge Modula-2

Cambridge Modula-2 von Cambridge-Mikroprozessorsystemen basiert auf einer Teilmenge von PIM4 mit Sprachverlängerungen für die eingebettete Entwicklung. Der Compiler läuft weiter DOS und es generiert Code für Motorola 68000 Serie (M68K) Basis eingebettete Mikrocontroller auf Basis eines Minos -Betriebssystems.

Mod51

MOD51 von Mandeno Granville Electronics basiert auf ISO Modula-2 mit Spracherweiterungen für die eingebettete Entwicklung nach IEC1131, ein Branchenstandard für Branchen Programmierbare Logikkontroller (PLC) eng mit Modula-2 verwandt. Der Mod51 -Compiler generiert den eigenständigen Code für 80C51 -basierte Mikrocontroller.

Modula-GM

Delco Electronics, dann eine Tochtergesellschaft von GM Hughes Elektronikentwickelte eine Version von Modula-2 für eingebettete Steuerungssysteme ab 1985. Delco nannte es Modula-GM. Es war das erste Programmiersprache auf hoher Ebene Wird zum Ersetzen verwendet Maschinensprache (Sprache) für eingebettete Systeme in Delco's Motorsteuerungseinheiten (ECUS). Dies war von Bedeutung, da Delco 1988 für GM mehr als 28.000 ECUs pro Tag produzierte. Dies war damals der weltweit größte Produzent von ECUS.[18] Die erste experimentelle Verwendung von Modula-GM in einem eingebetteter Controller war im 1985 Antillock-Bremssystem-Controller, der auf dem Motorola 68xxx-Mikroprozessor basiert und 1993 Gen-4-ECU von der verwendet wurde Champ Car World Series Meisterschaftsauto -Rennteams (CART) und Indy Racing League (IRL) Teams.[19] Die erste Produktionsanwendung von Modula-GM war die Verwendung in GM-LKWs beginnend mit dem Modelljahr 1990 Fahrzeugsteuermodul (VCM) verwendet zur Verwaltung von GM -Antriebsstrangs Vortec Motoren. Modula-GM wurde auch für alle ECUs für GMs 90 ° verwendet Buick V6 Motor Familie 3800 Serie II im Modelljahr 1997-2005 verwendet Buick Park Avenue. Die Modula-GM-Compiler und die zugehörigen Software-Management-Tools wurden von Delco aus bezogen Intermetrie.

Modula-2 wurde aufgrund seiner vielen Stärken gegenüber anderen alternativen Sprachauswahl im Jahr 1986 als Grundlage für die hohe Sprache von DELCO ausgewählt. Nachdem Delco Electronics von GM (mit anderen Komponentenabteilungen) zur Form war Delphi Automotive Systems Im Jahr 1995 erforderte globale Sourcing eine nicht proprietäre Softwaresprache auf hoher Ebene. ECU Embedded Software, die jetzt bei Delphi entwickelt wurde, wird mit kommerziellen Compilern für die Sprache zusammengestellt C.

Russische Radionavigation Satelliten

Die Satelliten des Russen RadionAvigation-Satellite-Service Rahmen Glonass, ähnlich wie bei den Vereinigten Staaten Global Positioning System (GPS) sind in Modula-2 programmiert.[20]

Compiler

  • Amsterdam Compiler Kit (ACK) Modula-2-für Minix; Freeware[21]
  • ADW Modula-2-Für Windows, ISO-konform, ISO/IEC 10514-1, ISO/IEC 10514-2 (OO-Erweiterung), ISO/IEC 10514-3 (generische Erweiterung); Freeware[22]
  • AGLET Modula-2-für Amigaos 4.0 für Powerpc; Freeware[23]
  • Modula-2 (FST-Software-Tools) für DOS; Freeware[24]
  • Gardens Point Modula-2 (GPM)-für BSD, Linux, OS/2, Solaris; ISO -konform; Freeware ab dem 30. Juli 2014[25]
  • Gardens Point Modula-2 (GPM/CLR)-für .NET Framework; Freeware[26]
  • GNU Modula-2-Für GCC-Plattformen, Version 1.0, veröffentlicht am 11. Dezember 2010; Compliance: PIM2, PIM3, PIM4, ISO; gratis Software, GNU Allgemeine öffentliche Lizenz (GPL)[27]
  • Logitech SA - Sie hatten auch einen "Echtzeit -Kernel" für eingebettete Verwendung (1987) [28][29]
  • M2amiga - für Amiga; gratis Software[30]
  • M2M-von N. Wirth und Mitarbeitern von ETH Zürich, plattformübergreifend, erzeugt M-Code für virtuelle Maschine; Freeware[31]
  • MacMeth - von N. Wirth und Mitarbeitern von ETH Zürich für Macintosh, nur klassisch; Freeware[32]
  • MOD51 - Für die Intel 80x51 Microcontroller -Familie, ISO -konform, IEC1132 -Erweiterungen; proprietäre Software[33]
  • Megamax Modula-2-für Atari st nur mit Dokumentation auf Deutsch; Freeware[34]
  • Modula-2 R10-Referenz Compiler für diese Modula; Open-Source, Peer Review[35]
  • Modulaware - für OpenVMS (Vax und Alpha), ISO -konform; proprietäre Software[36]
  • Orca/modula-2-für Apfel -Iigs Nach dem Byte funktioniert der Workshop des Apple Programmer
  • p1 modula-2-für Macintosh, Klassisch und Mac OS (Powerpc und Kohlenstoff (API) nur), ISO -konform; proprietäre Software[37]
  • Mocka - für verschiedene Plattformen, PIM -konform; Commercial, Freeware Linux/BSD -Versionen[38]
  • Tdi modula-2-für Atari st, von TDI -Software
  • Terra M2VMs - für OpenVMS (Vax und Alpha), PIM -konform; proprietäre Software[39]
  • M2C, ULM Modula-2-System-für Solaris (Sonne Sparc und Motorola 68K); gratis Software, GNU Allgemeine öffentliche Lizenz (GPL)[40]
  • XDS - ISO -konform, Topspeed -kompatible Bibliothek: Native XDS-X86 für x86 (Windows und Linux); XDS-C Für Windows und Linux (16- und 32-Bit-Version) Ziele C (K & r & Ansi); Freeware[41]

Turbo Modula-2

Turbo Modula-2 war ein Compiler und ein integrierte Entwicklungsumgebung zum MS-DOS entwickelt, aber nicht veröffentlicht, von Borland. Jensen und Partners, zu denen der Mitbegründer von Borland, Niels Jensen, gehörte, kaufte die unveröffentlichte Codebasis und verwandelte sie in Topspeed Modula-2. Es wurde schließlich an Clarion verkauft, jetzt im Besitz von Softelocity, das den Modula-2-Compiler als Teil seiner immer noch anbietet Clarion Produktpalette.

A Zilog Z80 CP/m Die Version von Turbo Modula-2 wurde kurz von Echelon unter Lizenz von Borland vermarktet. Eine Begleitveröffentlichung für Hitachi HD64180 wurde von Micromint als Entwicklungstool für ihren SB-180-Single-Board-Computer verkauft.

IBM Modula-2

IBM hatte einen Modula-2-Compiler für den internen Gebrauch, der auf beiden lief OS/2 und AIXund hatte erstklassige Unterstützung bei IBMs E2 Editor.[42] IBM Modula-2 wurde für Teile der verwendet OS/400 Branchen -lizenzierter interner Code (Effektiv der Kern von OS/400).[43] Dieser Code wurde hauptsächlich durch ersetzt durch C ++ Als OS/400 auf die portiert wurde IBM RS64 Prozessorfamilie, obwohl einige in modernen Veröffentlichungen des Betriebssystems bleiben.[44][45] A Motorola 68000 Es gab auch Backend, das möglicherweise in Produktprodukten eingebettete Systeme verwendet wurde.[42]

Betriebssysteme

Modula-2 wird verwendet, um einige zu programmieren Betriebssysteme (OSS). Die Modul-2-Modulstruktur und -unterstützung werden direkt in zwei verwandten OSS verwendet.

Das Betriebssystem benannt Medos-2Für die Lilith Workstation wurde in Eth Zürich von Svend Erik Knudsen mit Ratschlägen von Wirth entwickelt. Es ist ein einzelner Benutzer, objektorientiertes Betriebssystem Erstellt aus Modula-2-Modulen.[46][47][48]

Das Betriebssystem benannt Holzwollefür die Kronos Workstation, wurde von der entwickelt Akademie der Wissenschaften der Sowjetunion, Sibirischer Zweig, Novosibirsk Computing Center, modulares asynchrones Entwicklungssystem (MARS), Kronos Research Group (KRG). Es handelt sich um ein einzelnes Benutzersystem, das auf Modula-2-Modulen basiert.[49]

Bücher

  • Gleaves, Richard (1984). Modula-2 für Pascal-Programmierer. Springer Books on Professional Computing (1. Aufl.). Schweiz: Springer Nature. doi:10.1007/978-1-4613-8531-8. ISBN 978-0-387-96051-7. S2CID 346624.
  • King, K. N. (1. Januar 1988). Modula-2: Eine vollständige Anleitung. Burlington, Massachusetts: Jones und Bartlett Publishers. ISBN 978-0669110913.
  • Wirth, Niklaus (1988). Programmierung in Modula-2 (4. Aufl.). Berlin Heidelberg: Springer-Verlag. doi:10.1007/978-3-642-83565-0. ISBN 978-0-387-96051-7. S2CID 41899609.
  • Cooper, Doug (1. September 1990). Oh mein! Modula-2: Eine Einführung in die Programmierung. New York City, New York: W. W. Norton & Company. ISBN 978-0393960099.
  • Helman, Paul (1. März 1998). Wände und Spiegel: Intermediate Problemlösung und Datenstrukturen: Modula, 2 (Benjamin/Cummings -Reihe in strukturierter Programmierung). Benjamin-Cummings. ISBN 978-0805389456.
  • Sutcliffe, Richard J. (2004–2005). Modula-2: Abstraktionen für Daten- und Programmierstrukturen. Arjay -Bücher. ISBN 978-0-669-11091-3. Verwendet ISO-Standard Modula-2.


Verweise

  1. ^ "Zusammenfassung der Projekte von N. Wirth, 1962–1999". Abteilung für Computerwissenschaften. Eth Zürich.
  2. ^ Wirth, Niklaus (2002). "Pascal und seine Nachfolger". In Broy, Manfred; Denert, Ernst (Hrsg.). Software -Pioniere: Beiträge zum Software -Engineering. Berlin, Heidelberg: Springer-Verlag. S. 108–120. doi:10.1007/978-3-642-59412-0. ISBN 978-3-642-59412-0. S2CID 2698265.
  3. ^ Wirth, Niklaus (18. Februar 2005). "Geschichte und Ziele von Modula-2". Dr. Dobbs Journal. Informa plc.
  4. ^ a b Wirth, Niklaus (1988). Programmierung in Modula-2 (4. Aufl.). Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-83565-0. ISBN 978-3-642-83565-0. S2CID 41899609. Seite 4.
  5. ^ Wirth, Niklaus; Gutknecht, Jürg; Ohran, Richard; Paul, Robert J.; Coar, David (August 1984). "Thema: Modula-2". Byte: The Small Systems Journal. Vol. 9, nein. 8. S. 143–232. Erhältlich unter archive.org
  6. ^ Wirth, Niklaus (1. Mai 1984). "Ein Einzelpass-Modula-2-Compiler für Lilith" (PDF). CFB -Software. Abgerufen 28. Januar 2019.
  7. ^ ISO/IEC 10514-1: 1996
  8. ^ Tichy et al., Modula-2*: Eine Erweiterung für Modula-2 für hoch parallele tragbare Programme, Universität von Karlsruhe [1990]
  9. ^ Bräunl, Parallelprogrammierung, Prentice-Hall [1993]
  10. ^ Müller, C. (November 1986). "Modula -Prolog: Eine Softwareentwicklung". IEEE -Software. 3 (6): 39–45}. doi:10.1109/ms.1986.229475. S2CID 763425.
  11. ^ a b Modula2.org, 5. Wo kann ich Informationen über ISO Modula-2 erhalten?
  12. ^ Cardelli et al., Modula-3-Bericht, Forschungsbericht 31, Systemsforschungszentrum, Digital Equipment Corporation, [1988]
  13. ^ N. Wirth & J. Gutknecht, Project Oberon: Das Design eines Betriebssystems und Compilers, ISBN0-201-54428-8,, Addison-Wesley [1992]
  14. ^ Moessenbook & Wirth, Die Programmiersprache Oberon-2, Eth Zürich [1995]
  15. ^ Thomas Bräunl, Parallaxis, eine Sprache für strukturierte datenparallele Programmierung, Universität Stuttgart [1996]
  16. ^ Pat D. Terry, eine weitere minimale Programmiersprache, ACM Sigplan nennt Nr. 30 [1995]
  17. ^ D. Blasband, Die YAFL -Programmiersprache, zweite Ausgabe, [1993]
  18. ^ Delco Electronics Electron Magazine, The Atwood Legacy, Spring '89, Seite 25
  19. ^ Entwicklung der Elektronik für GM Auto Racing
  20. ^ Koltashev, A. A. (2006). "Modula-2 im russischen Raum". Kronos: Geschichte eines Projekts (auf Russisch). Xtech. Abgerufen 8. April 2021.
  21. ^ Gegeben, David (9. Oktober 2020). "Ack". GitHub. Abgerufen 13. März 2021.
  22. ^ "ADW Modula-2". Modula-2.org. Abgerufen 13. März 2021.
  23. ^ "AGLet Modula-2". AGLET Modula-2. 15. Februar 2012. Abgerufen 13. März 2021.
  24. ^ "FST Modula-2". PSG.com. Abgerufen 13. Oktober 2021.
  25. ^ "Gardens Point Modula". Programmiersprachen und Systemgruppen, Fakultät für Informationstechnologie. Queensland University of Technology, Brisbane. 29. Januar 2007. archiviert von das Original am 23. März 2013. Abgerufen 13. März 2021.
  26. ^ "Gardens Point Modula-2 (GPM/CLR)". Codeplex -Archiv: Open Source -Projektarchiv. Microsoft. 29. Januar 2007. Archiviert Aus dem Original am 2018. Abgerufen 13. März 2021.
  27. ^ "GNU Modula-2". Savanne. Kostenlose Software -Stiftung. 30. August 2018. Abgerufen 13. März 2021.
  28. ^ "Logitech Modula-2". Das elektronische Entwicklermagazin für OS/2 (EDM/2). Abgerufen 29. Mai 2022.
  29. ^ "1988: Modula-2 und Logitech RTK". Øyvind Teig. 12. April 2022. Foto der Diskette
  30. ^ Degen, René; Nieder, Claudio; Vorverwendung, Bernd; Schaub, Markus; Streube, Jörg (2004). "M2amiga". Claudios Website. A+l Ag. Archiviert Aus dem Original am 20. Januar 2019. Abgerufen 13. März 2021.
  31. ^ "Lilith und Modula-2". CFB -Software. Abgerufen 13. März 2021.
  32. ^ "MacMeth: Ein schnelles Modula-2-Sprachsystem für Macintosh-Computer". ETH Zürich: Ökologie des Terrestrischen Systems. 22. Januar 2020. Abgerufen 13. März 2021.
  33. ^ "MOD51 Strukturierte Textprogrammiersprache". Designwerkzeuge. Archiviert von das Original am 21. Oktober 2008. Abgerufen 13. März 2021.
  34. ^ Tempelmann, Thomas (1. September 2020). "Thomas Tempelmanns Homepage". Abgerufen 18. März 2021.
  35. ^ "Modula-2 R10". Abgerufen 13. Oktober 2021.
  36. ^ Dotzel, Chih-ya (21. Januar 2020). "Modulaware". Abgerufen 18. März 2021.
  37. ^ Wiedemann, Albert (13. Januar 2021). "P1 Modula-2". P1 -Gesellschaft für Informatik. Abgerufen 19. März 2021.
  38. ^ Beck, Michael; Geiss, Rubino (2006). "Der Karlsruhe Modula-2 Compiler Mocka". Institut für Programmstrukturen und Datenorganisation (IPD). Karlsruhe Institut für Technologie. Archiviert von das Original am 4. September 2009. Abgerufen 21. März 2021.
  39. ^ "Modula-2-Systeme für OpenVMS/Alpha und OpenVMS/VAX". Terra datentechnik (in Englisch und Deutsch). Erlenbach, Schweiz. 12. November 2002. Abgerufen 23. März 2021.
  40. ^ Borchert, Andreas; Haschsch, Martin (21. Januar 2003). "M2C: ULMs Modula-2-System". ULM Universität. Ulm, Deutschland. Abgerufen 23. März 2021.
  41. ^ "XDS-Produktfamilie: Modula-2-Oberon-2-Entwicklungstools". Excelsior LLC. 1999–2009. Archiviert von das Original am 27. Mai 2009. Abgerufen 23. März 2021.
  42. ^ a b "IBM Modula-2". edm2.com. 2. März 2019. Abgerufen 12. März 2021.
  43. ^ "Leser -Feedback zu/400 zu I Mystery gelöst". itjungle.com. 21. Februar 2011. Abgerufen 12. März 2021.
  44. ^ Soltis, Frank G. (1997). Im As/400 (2. Aufl.). Duke Press. ISBN 978-1882419661.
  45. ^ Leif Svalgaard (8. Oktober 2003). "Re: Re: Mi Emulator". MI400 (Mailingliste). Abgerufen 26. Februar 2021.
  46. ^ Knudsen, Svend Erik (1983). MEDOS-2: Ein Modula-2-orientiertes Betriebssystem für den Personalcomputerlilith (PhD). Eth Zürich. doi:10.3929/Ethz-A-000300091. HDL:20.500.11850/137906.
  47. ^ Knudsen, Svend Erik (25. Oktober 2000). "Medos im Nachhinein". In Böszörményi, László; Gutknecht, Jürg; Pomberger, Gustav (Hrsg.). Die Schule von Niklaus Wirth: Die Kunst der Einfachheit. Morgan Kaufmann. S. 69–86. ISBN 978-1558607231. ISBN1-55860-723-4 & dpunkt, ISBN3-932588-85-1.
  48. ^ Sand, Paul A. (September 1984). "Der Lilith -Personalcomputer". Byte. S. 300–311. Abgerufen 6. März 2021. Abdruck.
  49. ^ Kuznetsov, D.N.; Nedorya, A.E.; Tarasov, E.V.; Filippov, V.E. "Kronos: Eine Familie von Prozessoren für hochrangige Sprachen". Kronos: Geschichte eines Projekts (auf Russisch). Xtech. Abgerufen 13. April 2021.

Externe Links