모듈라-2

Modula-2
모듈라-2
패러다임명령, 구조화, 모듈화, 데이터 프로시저 숨김, 동시
가족워스 모듈라
설계자니클라우스 워스
처음 등장한1978년, 44년(연장)
타이핑 분야정전기, 강력, 안전
범위어휘(정적)
플랫폼릴리스(AMD 2901)
OS크로스 플랫폼
파일 이름 확장자.mod, .m2, .def,.MOD, .DEF, .mi, .md
웹 사이트www.modula2.org
주요 구현
Niklaus Wirth가 작성한 ETH 컴파일러
GNU 모듈라-2
ADW 모듈라-2
사투리
PIM2, PIM3, PIM4, ISO
영향을 받다
모듈라, 메사, 파스칼, ALGOL W, 유클리드
영향받은
Modula-3, Oberon, Ada, Fortran 90, Lua, Seed7, Zonnon, Modula-GM

모듈라-2는 1977년부터 1985/8년 사이에 ETH 취리히Niklaus Wirth에 의해 개발된 구조화된 절차적 프로그래밍 언어입니다.Lilith [1]퍼스널워크스테이션운영체제애플리케이션 소프트웨어의 언어로 작성되었습니다.그것은 나중에 릴리스 문맥 밖에서 프로그래밍에 사용되었다.

워스는 모듈라-2를 그의 초기 프로그래밍 언어인 파스칼과 모듈라[2][3]후계자로 보았다.주요 개념은 다음과 같습니다.

  1. 모듈은 개별 컴파일을 위한 컴파일 유닛으로서
  2. 동시 프로세스의 기본 구성 요소로서의 코루틴
  3. 머신 고유의 데이터에 액세스 할 수 있는 타입과 순서

언어 디자인은 1976년 [4]워스가 그곳에서 안식년을 보내는 동안 본 제록스 PARC의 메사 언어와 제록스 알토의 영향을 받았다.컴퓨터 잡지 바이트는 1984년 8월호를 언어와 주변 환경에 [5]할애했다.

모듈라-2에 이어 모듈라-3에 이어 오베론 계열의 언어들이 이어졌다.

묘사

Modula-2는 시스템 프로그래밍과 애플리케이션 프로그래밍 모두에 적합한 범용 절차 언어입니다.이 구문은 워스의 초기 언어인 파스칼에 기초하고 있으며, 일부 요소와 구문적 모호성은 제거되었다.별도의 컴파일 및 데이터 추상화를 지원하도록 설계된 모듈 개념과 멀티프로그래밍을 위한 직접 언어 지원이 추가되었습니다.

이 언어에서는 원패스 컴파일러를 사용할 수 있습니다.Gutknecht와 Wirth의 이러한 컴파일러이전의 멀티패스 [6]컴파일러보다 약 4배 더 빨랐다.

다음은 "Hello world" 프로그램의 소스 코드 예입니다.

모듈 안녕; 부터 스테이터스 수입품 기입 문자열; 시작한다.   기입 문자열('헬로 월드') 끝. 안녕. 

Modula-2 모듈은 일련의 관련된 서브 프로그램 및 데이터 구조를 캡슐화하고 프로그램의 다른 부분으로부터의 가시성을 제한하기 위해 사용할 수 있다.모듈라-2 프로그램은 2개의 부분으로 구성되어 있습니다.각각은 2개의 부분으로 구성되어 있습니다.정의 모듈, 인터페이스 부분(다른 모듈로 볼 수 있는 서브시스템의 부분만 포함)과 구현 모듈(모듈 내부의 작업 코드를 포함합니다.

그 언어는 엄격한 범위 제어를 가지고 있다.표준 식별자를 제외하고 명시적으로 Import하지 않는 한 모듈 내부에서 외부에서 개체를 볼 수 없습니다.명시적으로 내보내지 않는 한 외부에서 내부 모듈 개체를 볼 수 없습니다.

모듈 M1이 명시적 내보내기 목록에 식별자를 열거하여 오브젝트 a, b, c 및 P를 내보낸다고 가정합니다.

  정의. 모듈 M1;     내보내기 적격 a, b, c, P;     ... 

모듈 M1로부터의 오브젝트 a, b, c 및 P는 모듈 M1의 외부에 M1.a, M1.b, M1.c 및 M1.P로 알려져 있습니다.이것들은 정규화된 방법으로 외부로 내보냅니다(모듈 M1이 글로벌하다고 가정).내보내기 모듈의 이름, 즉 M1은 한정자로 사용되며 그 뒤에 객체의 이름이 나옵니다.

모듈 M2에 다음 IMPORT 선언이 포함되어 있다고 가정합니다.

  모듈 M2;     수입품 M1;     ... 

즉, 모듈 M1에 의해 폐쇄 프로그램 외부로 내보낸 객체를 모듈 M2 내에서 사용할 수 있게 됩니다.M1.a, M1.b, M1.c 및 M1.P의 정규화된 방법으로 참조됩니다.예:

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

정규 내보내기를 사용하면 이름 충돌을 방지할 수 있습니다.예를 들어 다른 모듈 M3에서 P라는 오브젝트를 내보내는 경우 M1.P와 M3.P가 다르기 때문에 2개의 오브젝트를 구별할 수 있습니다.내보내기 모듈 M1 및 M3 내에서 양쪽 오브젝트가 P라고 불리는 것은 문제가 되지 않습니다.

다른 방법이 있습니다.모듈 M4가 다음과 같이 공식화되어 있다고 가정합니다.

  모듈 M4;     부터 M1 수입품 a, b, c, P; 

즉, 모듈 M1에 의해 외부로 내보낸 오브젝트는 모듈 M4 내에서 다시 사용할 수 있지만, 현재는 a, b, c 및 P와 같이 정규화되지 않은 방법으로 내보낸 식별자를 참조하는 것만으로 사용할 수 있습니다.예:

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

이 Import 방법은 이름 경합이 없는 경우에 사용할 수 있습니다.변수 및 기타 오브젝트를 내보내기 모듈 외부에서도 내보내기 모듈 내부와 동일한 방식으로 사용할 수 있습니다.

내보내기 및 가져오기 규칙은 개체를 원치 않는 액세스로부터 보호할 뿐만 아니라 프로그램 내 모든 식별자의 정의를 상호 참조할 수 있도록 합니다.이 속성은 많은 모듈을 포함하는 대규모 프로그램을 유지관리하는 데 도움이 됩니다.

이 언어는 단일 프로세서의 동시성(모니터, 코루틴 및 제어의 명시적 전송) 및 하드웨어 액세스(절대 주소, 비트 조작 및 인터럽트)를 제공합니다.공칭형 시스템을 사용합니다.

사투리

Modula-2에는 두 가지 주요 사투리가 있다.첫 번째는 Niklaus Worth가 [4]Modula-2의 Programming in Modula-2에서 이름을 따온 PIM입니다.PIM에는 두 번째, 세 번째(수정) 및 네 번째의 세 가지 주요 에디션이 있습니다.각각은 언어의 약간의 변형을 설명합니다.두 번째 주요 사투리는 ISO로, 국제 표준화 기구의 표준화 노력에 따라 명명되었습니다.여기 그들 사이의 몇 가지 차이점이 있다.

  • PIM2(1983)
    • 필수 명시적EXPORT절을 지정합니다.
    • 기능.SIZE모듈에서 Import해야 합니다.SYSTEM
  • PIM3(1985)
    • 삭제했다.EXPORT정의 모듈 내의 모든 것이 해당 모듈에 대한 인터페이스를 정의한다는 관찰에 따라 정의 모듈의 절이 생성됩니다.EXPORT절이 중복되었습니다.
    • 기능.SIZE널리 보급되어 있다(가져오지 않고 모든 범위에서 사용 가능)
  • PIM4(1988)
    • 의 동작을 지정했다.MOD오퍼랜드가 음수인 경우 연산자.
    • 모두 필요ARRAY OF CHARASCII NUL에 의해 종단되는 스트링입니다(스트링이 배열에 정확하게 들어가더라도).
  • ISO (1996, 1998)
    • ISO Modula-2는 PIM Modula-2의 애매함을 대부분 해결했습니다.데이터 유형을 추가했습니다.COMPLEX그리고.LONGCOMPLEX, 예외, 모듈 종단(FINALLY절) 및 완전한 표준 입출력(I/O) 라이브러리를 제공합니다.많은 사소한 차이와 [7]명확성이 있다.

슈퍼셋

Modula-2에는 특정 응용 프로그램도메인용 언어 확장자를 가진 몇 가지 슈퍼셋이 있습니다.

파생상품

Modula-2와 매우 유사하지만 그 자체로 새로운 언어인 파생 언어가 몇 개 있습니다.대부분은 다른 목적과 장단점을 가진 다른 언어입니다.

  • Modula-3는 DEC와[12] Olivetti로 이전한 전직 Xerox 직원 팀에 의해 개발되었습니다.
  • Oberon은 ETH 취리히에서 System Oberon용으로[13] 개발되었으며 온라인에서 이용 가능합니다.
  • Oberon-2, Oberon(OO 확장자[14] 포함)
  • Active Oberon은 또 다른 객체 지향 확장 Oberon도 ETH에서 개발되었으며 멀티프로세서 및 멀티코어 시스템에서 병렬 프로그래밍을 지원하는 것을 주요 목표로 하고 있습니다.
  • Paralaxis, 기계에 의존하지 않는 데이터 병렬 프로그래밍을[15] 위한 언어
  • 팻 테리가 가르치는 언어로[16] 개발한 움브리엘
  • Darius Blasband의[17] 연구 언어인 YAFL

다른 많은 현재의 프로그래밍 언어들은 모듈라-2의 기능을 채택하고 있다.

언어 요소

예약어

PIM [2,3,4]는 40개의 예약어를 정의합니다.

및 DIV 구현 절차 V까지의 포인터 또는 유형 정의에서 case of to const 또는 type definition으로 설정된 ELSIF 루프 반복 어레이 엔드 모드 리턴 시작 출구 모듈AR DO Import 인증 완료(다른 기록 있음)

내장 식별자

PIM [3,4]는 29개의 삽입 식별자를 정의합니다.

ABS EXCLLONGINT 리얼 비트셋 거짓 롱리얼 사이즈 부울 플로트 최대 트루 캡 HALT 최소 하이닐 발 문자 INC 홀드 CHR 포함 ORD DEC 정수 프로시

임베디드 시스템 사용

모듈라-2는 많은 임베디드 시스템을 프로그래밍하는 데 사용됩니다.

케임브리지 모듈라-2

Cambridge Modula-2 by Cambridge Microprocessor Systems는 임베디드 개발용 언어 확장자를 가진 PIM4의 서브셋을 기반으로 합니다.컴파일러는 DOS 에서 실행되며 MINOS 운영체제를 실행하는 Motorola 68000 시리즈(M68k) 기반의 내장 마이크로 컨트롤러용 코드를 생성합니다.

Mod51

Mandeno Granville Electronics의 Mod51은 모듈라-2와 밀접하게 관련된 프로그래머블 로직 컨트롤러(PLC)의 업계 표준인 IEC1131에 따라 임베디드 개발을 위한 언어 확장을 가진 ISO Modula-2에 기초하고 있습니다.Mod51 컴파일러는 80C51 기반의 마이크로 컨트롤러용 스탠드아론 코드를 생성합니다.

모듈라 GM

당시 GM Hughes Electronics의 자회사였던 Delco Electronics는 1985년부터 임베디드 제어 시스템용 Modula-2 버전을 개발했습니다.델코가 Modula-GM이라고 이름 붙였어요.Delco의 엔진 컨트롤 유닛(ECU)에서 임베디드 시스템의 기계 코드(언어)를 대체하기 위해 사용된 최초의 고급 프로그래밍 언어입니다.이는 델코가 1988년에 GM을 위해 하루에 28,000 ECU 이상을 생산했기 때문에 의미가 있었습니다.이것은 당시 세계 최대의 ECU [18]생산국이었다.임베디드 컨트롤러에 Modula-GM을 최초로 실험적으로 사용한 것은 Motorola 68xx 마이크로프로세서를 기반으로 한 1985년 Antilock Braking System Controller이며, 1993년에는 챔프카 월드 시리즈 챔피언십 오토 레이싱 팀(CART)과 인디 레이싱 리그(IR)[19] 팀이 사용한 Gen-4 ECU입니다.Modula-GM은 GM 파워트레인의 Vortec 엔진을 관리하는 데 사용되는 1990MY 차량 컨트롤 모듈(VCM)부터 GM 트럭에 처음 사용되었습니다.Modula-GM은 1997-2005년식 뷰익 파크 애비뉴에 사용된 GM의 90° 뷰익 V6 엔진 제품군 3800 시리즈 II의 모든 ECU에도 사용되었습니다.Modula-GM 컴파일러 및 관련 소프트웨어 관리 도구는 Intermetrics의 델코에 의해 조달되었습니다.

모듈라-2는 1986년에 다른 대체 언어에 비해 많은 장점을 가지고 있었기 때문에 델코의 고급 언어의 기초가 되었다.1995년에 델코 일렉트로닉스가 GM(다른 컴포넌트 부문과 함께)에서 분사되어 델파이 오토모티브 시스템을 형성한 후, 글로벌 소싱에서는 비특허 고급 소프트웨어 언어를 사용해야 했습니다.현재 델파이로 개발된 ECU 임베디드 소프트웨어는 C 언어용 상용 컴파일러와 함께 컴파일됩니다.

러시아의 방사성 항행 위성

미국의 위성위치확인시스템(GPS)과 유사한 러시아 방사성항법위성서비스 프레임워크 GLONASS의 위성은 모듈라-2에 프로그래밍된다.[20]

컴파일러

  • 암스테르담 컴파일러 키트(ACK) 모듈라-2 – MINIX용, 프리웨어[21]
  • ADW Modula-2 – Windows용, ISO 준거, ISO/IEC 10514-1, ISO/IEC 10514-2(OO 확장), ISO/IEC 10514-3(일반 확장), 프리웨어[22]
  • Aglet Modula-2 – AmigaOS 4.0 전원용PC, 프리웨어[23]
  • 장착 소프트웨어 도구(FST) 모듈라-2 – DOS용, 프리웨어[24]
  • Gardens Point Modula-2 (GPM)– BSD, Linux, OS/2, Solaris, ISO 준거, 프리웨어, 2014년[25] 7월 30일 현재
  • 가든 포인트 모듈라-2(GPM/CLR) 용.NET 프레임워크, 프리웨어[26]
  • GNU Modula-2 – GCC 플랫폼용 버전 1.0, 2010년 12월 11일 출시, 컴플라이언스: PIM2, PIM3, PIM4, ISO, 자유 소프트웨어, GNU General Public License(GPL)[27]
  • Logitech SA - 임베디드 기기용 "실시간 커널"도 탑재되어 있습니다(1987년)
  • M2Amiga – Amiga용, 무료 소프트웨어[30]
  • M2M – N.크로스 플랫폼인 ETH Zurich의 Worth와 공동작업자가 가상 머신의 M-코드를 생성합니다.프리웨어[31]
  • MacMET – N.ETH 취리히의 Macintosh, Classic 전용 Worth 및 공동작업자, 프리웨어만[32]
  • Mod51 – 인텔 80x51 마이크로컨트롤러 패밀리, ISO 준거, IEC1132 확장 기능, 자체 소프트웨어[33]
  • Megamax Modula-2 – Atari ST용(독일어 설명서만 포함), 프리웨어[34]
  • Modula-2 R10 – 이 Modula용 레퍼런스 컴파일러, 오픈소스, 피어[35] 리뷰
  • ModulaWare – OpenVMS(VAX Alpha), ISO 준거, 독자 소프트웨어[36]
  • ORCA/Modula-2 – Apple 프로그래머 워크숍용 바이트 워크스(Byte Works for the Apple IIGS)
  • p1 Modula-2 – Macintosh, ClassicMacOS(PowerPC 및 카본(API)만), ISO 준거, 독자 소프트웨어[37]
  • MOCKA – 다양한 플랫폼, PIM 준거, 상용 프리웨어 Linux/BSD[38] 버전
  • TDI Modula-2 – Atari ST용, TDI 소프트웨어 사용
  • Terra M2VMS – OpenVMS(VAX Alpha), PIM 준거, 자체[39] 소프트웨어
  • m2c, Ulm Modula-2 시스템– Solaris(Sun SPARC 및 Motorola 68k), 자유 소프트웨어, GNU General Public License(GPL)[40]
  • XDS – ISO 준거, TopSpeed 호환 라이브러리: x86용 네이티브 XDS-x86(Windows 및 Linux), Windows 및 Linux용 XDS-C(16비트 및 32비트 버전), 타깃 C(K&R 및 ANSI), 프리웨어[41]

터보 모듈라-2

터보 모듈라-2는 볼랜드가 개발했지만 공개되지는 않은 MS-DOS용 컴파일러이자 통합 개발 환경이었다.Jensen and Partners는 Borland의 공동 설립자 Niels Jensen을 포함하며 미공개 코드베이스를 구입하여 TopSpeed Modula-2로 변경하였다.현재는 SoftVelocity가 소유하고 있는 Clarion에 매각되었습니다.이 회사는 Modula-2 컴파일러를 Clarion 제품 라인의 일부로 제공하고 있습니다.

Zilog Z80 CP/M 버전의 터보 모듈라-2는 볼랜드의 라이선스를 받아 에셜론에 의해 잠시 판매되었다.Hitachi HD64180의 동반 릴리스는 Micromint에 의해 SB-180 싱글 보드 컴퓨터의 개발 도구로 판매되었습니다.

IBM 모듈라-2

IBM은 OS/2와 AIX 모두에서 실행되는 내부용 Modula-2 컴파일러를 가지고 있었으며 IBM의 E2 [42]편집기에서 1등급을 지원했습니다.IBM Modula-2는 OS/400 Vertical Licensed Internal Code(OS/[43]400의 커널)의 일부에 사용되었습니다.OS/400이 IBM RS64 프로세서 제품군으로 이식되었을 때 이 코드는 대부분 C++로 대체되었지만 일부는 운영 [44][45]체제의 최신 릴리스에 남아 있습니다.Motorola 68000 백엔드는 임베디드 시스템 [42]제품에 사용되었을 수도 있습니다.

운영 체제

Modula-2는 일부 운영 체제(OS)를 프로그래밍하는 데 사용됩니다.Modula-2 모듈 구조와 지원은 두 개의 관련 OS에서 직접 사용됩니다.

Lilith 워크스테이션용 Medos-2라는 OS는 ETH 취리히에서 Worth의 조언으로 Svend Erik Knudsen에 의해 개발되었습니다.Modula-2 [46][47][48]모듈로 구축된 단일 사용자 객체 지향 운영 체제입니다.

Kronos 워크스테이션용 Excelsior라는 OS는 소련 과학 아카데미, 시베리아 지사, Novosibirsk Computing Center, 모듈러 비동기 개발 시스템(MARS) 프로젝트, Kronos Research Group(KRG)에서 개발되었습니다.Modula-2 [49]모듈을 기반으로 하는 단일 사용자 시스템입니다.

책들

  • Gleaves, Richard (1984). Modula-2 for Pascal Programmers. Springer Books on Professional Computing (1st ed.). Switzerland: Springer Nature. doi:10.1007/978-1-4613-8531-8. ISBN 978-0-387-96051-7. S2CID 346624.
  • King, K. N. (1 January 1988). Modula-2: A Complete Guide. Burlington, Massachusetts: Jones and Bartlett Publishers. ISBN 978-0669110913.
  • Wirth, Niklaus (1988). Programming in Modula-2 (4th ed.). 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 My! Modula-2: An Introduction to Programming. New York City, New York: W. W. Norton & Company. ISBN 978-0393960099.
  • Helman, Paul (1 March 1998). Walls and Mirrors: Intermediate Problem Solving and Data Structures : Modula, 2 (Benjamin/Cummings Series in Structured Programming). Benjamin-Cummings. ISBN 978-0805389456.
  • Sutcliffe, Richard J. (2004–2005). Modula-2: Abstractions for Data and Programming Structures. Arjay Books. ISBN 978-0-669-11091-3. ISO 표준 Modula-2를 사용합니다.


레퍼런스

  1. ^ "Summary of Projects by N. Wirth, 1962–1999". Department of Computer Science. ETH Zurich.
  2. ^ Wirth, Niklaus (2002). "Pascal and its Successors". In Broy, Manfred; Denert, Ernst (eds.). Software Pioneers: Contributions to Software Engineering. Berlin, Heidelberg: Springer-Verlag. pp. 108–120. doi:10.1007/978-3-642-59412-0. ISBN 978-3-642-59412-0. S2CID 2698265.
  3. ^ Wirth, Niklaus (18 February 2005). "History and Goals of Modula-2". Dr. Dobb's Journal. Informa PLC.
  4. ^ a b Wirth, Niklaus (1988). Programming in Modula-2 (4th ed.). Berlin, Heidelberg: Springer. doi:10.1007/978-3-642-83565-0. ISBN 978-3-642-83565-0. S2CID 41899609. 페이지 4
  5. ^ Wirth, Niklaus; Gutknecht, Jürg; Ohran, Richard; Paul, Robert J.; Coar, David (August 1984). "Theme: Modula-2". Byte: The Small Systems Journal. Vol. 9, no. 8. pp. 143–232. Archive.org 에서 구할 수 있습니다.
  6. ^ Wirth, Niklaus (1 May 1984). "A Single-pass Modula-2 Compiler for Lilith" (PDF). CFB Software. Retrieved 28 January 2019.
  7. ^ ISO/IEC 10514-1:1996
  8. ^ Tichy et al., Modula-2*: 칼스루에 대학(University of Karlsruhe)의 고도로 병렬화된 휴대용 프로그램용 Modula-2 확장판 [1990]
  9. ^ 프렌티스홀 패럴렐프로그래밍 [1993년]
  10. ^ Muller, C. (November 1986). "Modula–Prolog: A Software Development". IEEE Software. 3 (6): 39–45}. doi:10.1109/MS.1986.229475. S2CID 763425.
  11. ^ a b modula2.org, 5.ISO 모듈라-2에 대한 정보는 어디서 얻을 수 있습니까?
  12. ^ Cardelli 등, Modula-3 보고서, 리서치 리포트 31, 디지털 이그니션 코퍼레이션, 시스템 리서치 센터, [1988]
  13. ^ N. Wirth & J. Gutknecht, Project Oberon: 운영체제 및 컴파일러 설계, ISBN 0-201-54428-8, Addison-Wesley [1992년]
  14. ^ Moessenboeck & Wirth, 프로그래밍 언어 Oberon-2, ETH 취리히 [1995]
  15. ^ Thomas Braunl, Parallaxis, 구조화 데이터 병렬 프로그래밍 언어, 슈투트가르트 대학교 [1996년]
  16. ^ Pat D. Terry, 또 하나의 최소 프로그래밍 언어, ACM SIGPLAN 통지 제30호 [1995년]
  17. ^ D. Blasband, The YAFL Programming Language, 제2판 [1993년]
  18. ^ Delco Electronics Magazine, The Atwood Legacy, 89년 봄, 25페이지
  19. ^ GM 자동차 경주용 전자제품 개발
  20. ^ Koltashev, A. A. (2006). "Modula-2 in Russian Space". Kronos: History of a Project (in Russian). xTech. Retrieved 8 April 2021.
  21. ^ Given, David (9 October 2020). "ACK". GitHub. Retrieved 13 March 2021.
  22. ^ "ADW Modula-2". Modula-2.org. Retrieved 13 March 2021.
  23. ^ "Aglet Modula-2". Aglet Modula-2. 15 February 2012. Retrieved 13 March 2021.
  24. ^ "FST Modula-2". psg.com. Retrieved 13 October 2021.
  25. ^ "Gardens Point Modula". Programming Languages and Systems Group, Faculty of Information Technology. Queensland University of Technology, Brisbane. 29 January 2007. Archived from the original on 23 March 2013. Retrieved 13 March 2021.
  26. ^ "Gardens Point Modula-2 (GPM/CLR)". CodePlex Archive: Open Source Project Archive. Microsoft. 29 January 2007. Archived from the original on 2018. Retrieved 13 March 2021.
  27. ^ "GNU Modula-2". Savannah. Free Software Foundation. 30 August 2018. Retrieved 13 March 2021.
  28. ^ "Logitech Modula-2". The Electronic Developer Magazine for OS/2 (EDM/2). Retrieved 29 May 2022.
  29. ^ "1988: Modula-2 and Logitech RTK". Øyvind Teig. 12 April 2022. Photo of the floppy disk
  30. ^ Degen, René; Nieder, Claudio; Preusing, Bernd; Schaub, Markus; Straube, Jörg (2004). "M2Amiga". Claudio's web site. A+L AG. Archived from the original on 20 January 2019. Retrieved 13 March 2021.
  31. ^ "Lilith and Modula-2". CFB Software. Retrieved 13 March 2021.
  32. ^ "MacMETH: A Fast Modula-2 Language System for Macintosh Computers". ETH Zurich: Terrestrial Systems Ecology. 22 January 2020. Retrieved 13 March 2021.
  33. ^ "Mod51 Structured Text Programming Language". Design Tools. Archived from the original on 21 October 2008. Retrieved 13 March 2021.
  34. ^ Tempelmann, Thomas (1 September 2020). "Thomas Tempelmann's home page". Retrieved 18 March 2021.
  35. ^ "Modula-2 R10". Retrieved 13 October 2021.
  36. ^ Dotzel, Chih-Ya (21 January 2020). "ModulAware". Retrieved 18 March 2021.
  37. ^ Wiedemann, Albert (13 January 2021). "p1 Modula-2". p1 Society for Computer Science. Retrieved 19 March 2021.
  38. ^ Beck, Michael; Geiss, Rubino (2006). "The Karlsruhe Modula-2 Compiler MOCKA". Institute for Program Structures and Data Organization (IPD). Karlsruhe Institute of Technology. Archived from the original on 4 September 2009. Retrieved 21 March 2021.
  39. ^ "Modula-2 systems for OpenVMS/Alpha and OpenVMS/VAX". Terra Datentechnik (in English and German). Erlenbach, Switzerland. 12 November 2002. Retrieved 23 March 2021.
  40. ^ Borchert, Andreas; Hasch, Martin (21 January 2003). "m2c: Ulm's Modula-2 System". Ulm University. Ulm, Germany. Retrieved 23 March 2021.
  41. ^ "XDS Family of Products: Modula-2 – Oberon-2 development tools". Excelsior LLC. 1999–2009. Archived from the original on 27 May 2009. Retrieved 23 March 2021.
  42. ^ a b "IBM Modula-2". edm2.com. 2 March 2019. Retrieved 12 March 2021.
  43. ^ "Reader Feedback on AS/400 to i Mystery Solved". itjungle.com. 21 February 2011. Retrieved 12 March 2021.
  44. ^ Soltis, Frank G. (1997). Inside the AS/400 (2nd ed.). Duke Press. ISBN 978-1882419661.
  45. ^ Leif Svalgaard (8 October 2003). "Re: Re: MI emulator". MI400 (Mailing list). Retrieved 26 February 2021.
  46. ^ Knudsen, Svend Erik (1983). Medos-2: A Modula-2 Oriented Operating System for the Personal Computer Lilith (PhD). ETH Zurich. doi:10.3929/ethz-a-000300091. hdl:20.500.11850/137906.
  47. ^ Knudsen, Svend Erik (25 October 2000). "Medos in Retrospect". In Böszörményi, László; Gutknecht, Jürg; Pomberger, Gustav (eds.). The School of Niklaus Wirth: The Art of Simplicity. Morgan Kaufmann. pp. 69–86. ISBN 978-1558607231. ISBN 1-55860-723-4 및 dpunkt, ISBN 3-932588-85-1.
  48. ^ Sand, Paul A. (September 1984). "The Lilith Personal Computer". Byte. pp. 300–311. Retrieved 6 March 2021. 재인쇄.
  49. ^ Kuznetsov, D.N.; Nedorya, A.E.; Tarasov, E.V.; Filippov, V.E. "Kronos: a family of processors for high-level languages". Kronos: History of a Project (in Russian). xTech. Retrieved 13 April 2021.

외부 링크