알골 68C
ALGOL 68C이 문서는 Wikipedia의 레이아웃 가이드라인에 따라 재편성이 필요할 수 있습니다.(2016년 7월 (이 및 ) |
| 개발자 | 스티븐 본, 마이클 가이, 앤드류 DBirrell, Ian Walker, Chris Cheney 등 |
|---|---|
| 초기 릴리즈 | 1970년경;전( |
| 안정된 릴리스 | 1.3039 / 2013년 3월 , 전( |
| 기입처 | 알골 68 |
| 운영 체제 | MVT 또는 MVS를 실행하는 IBM 360, 370 등 메인프레임(또는 에뮬레이션) |
| 유형 | 컴파일러, 번역자 |
| 웹 사이트 | bitbucket |
ALGOL 68C는 스테판 R에 의해 개발된 ALGOL 68의 방언인 필수 컴퓨터 프로그래밍 언어입니다. 본과 마이클 가이가 캠브리지 대수 시스템(CAMAL)을 프로그래밍합니다.초기 컴파일러는 Edgar T에 의해 Princeton Syntax Compiler(PYCO)에서 작성되었습니다. J. H. Mathewman이 캠브리지에서 구현한 Irons).
ALGOL 68C는 이후 1971년 캠브리지 대학의 기능 기반 보안 CAP 컴퓨터용 카오스 OS에 사용되었습니다.다른 초기 기여자들은 Andrew D였다.버렐과[1] 이안 워커.
1975년 본이 캠브리지 대학을 떠난 후 컴파일러에 대한 후속 작업이 이루어졌다.가비지 컬렉션이 추가되었으며 코드 베이스는 헤라클레스를 사용하여 에뮬레이트된 OS/MVT에서 실행되고 있습니다[clarification needed].
ALGOL 68C 컴파일러는 레지스터 기반 중간 언어인 ZCODE로 출력을 생성했으며, 이 언어들은 해석되거나 네이티브 실행 파일로 컴파일될 수 있습니다.ZCODE를 해석하거나 컴파일하는 이러한 기능은 많은 다른 컴퓨팅 플랫폼으로 ALGOL 68C를 이식하는 것을 장려했습니다.CAP 컴퓨터 이외에 컴파일러는 Conversational Monitor System(CMS), TOPS-10 및 Zilog Z80 등의 시스템으로 이식되었습니다.
대중문화
이 컴파일러의 초기 버전은 Guy와 Bourne에 의해 DEC 340 [2][3]디스플레이를 갖춘 PDP-7에 최초의 Game of Life 프로그램을 작성하기 위해 사용되었습니다.
다양한 리버풀 소프트웨어 가제트는 Z80 구현에 대한 자세한 내용을 발행합니다.컴파일러를 실행하려면 약 120KB의 메모리가 필요했습니다.따라서 Z80의 64KB 메모리는 컴파일러를 실행하기에 너무 작습니다.따라서 Z80용 ALGOL 68C 프로그램은 더 큰 CAP 컴퓨터 또는 IBM System/370 메인프레임 컴퓨터에서 교차 컴파일해야 했습니다.
Algol 68C 및 Unix
Stephen Bourne은 이후 ALGOL 68을 재사용했습니다. if ~ then ~ else ~ fi,case ~ in ~ out ~ esac그리고.for ~ while ~ do ~ od 일반적인 UnixBourne 쉘에 있는 절이지만in의 구문이 변경되었습니다.out삭제했습니다.od로 대체하다done(od 유틸리티와의 충돌을 피하기 위해).
Cambridge 졸업 후 Bell Labs에서 Version 7 Unix(Seventh Edition Unix) 팀과 9년간 근무했습니다.Bourne 쉘을 개발할 뿐만 아니라, 그는 DEC PDP-11-45에서 ALGOL 68C를 Unix로 포팅하고, ALGOL 68C로 작성된 프로그램의 스택 역추적을 얻기 위한 특별한 옵션을 Unix 디버거(adb)에 포함시켰다.다음은 Unix 7th Edition [4]매뉴얼페이지에서 발췌한 것입니다.
NAME adb - 디버거 SYNOPSIS adb [ - w ][ objfil [ corfil ][ ... commands ][ ... $ modifier Miscellaneous ]명령어사용 가능한 수식자는 [...] ALGOL 68 스택 역추적입니다.주소가 지정되어 있는 경우는, 현재 프레임의 주소(r4 가 아니고)로 간주됩니다.카운트가 지정되면 첫 번째 카운트 프레임만 인쇄됩니다.
ALGOL 68C의 ALGOL 68로의 확장
다음으로 주목할 만한 [5]확장 기능의 예를 제시하겠습니다.
- 모든 연산자에 대한 자동 op:=.
*:=그리고.+:= UPTO,DOWNTO그리고.UNTIL루프 링크로,- 변위 연산자(
:=:=) ANDF,ORF그리고.THEF구문 요소- 개별 컴파일 -
ENVIRON절과USING조문 - 스코프가 체크되어 있지 않다
- 형식 정의자의 경계
CODE...EDOC절 - ZCODE 삽입용
그ENVIRON그리고.USING조항
ALGOL 68C의 개별 컴파일은 다음 명령어를 사용하여 수행합니다.ENVIRON그리고.USING절을 참조하십시오.그ENVIRON는, 표시되는 시점에서 환경 전체를 보존합니다.다음 문자로 시작하는 개별 모듈USING절이 효과적으로 첫 번째 모듈에 삽입됩니다.ENVIRON구가 표시됩니다.
ENVIRON그리고.USING는 기존 라이브러리 메커니즘에 의해 암시되는 상향식 스타일과 대조적으로 하향식 프로그래밍 스타일에 유용합니다.
이 구들은 C 프로그래밍 언어에서 볼 수 있는 #include 또는 Python에서 볼 수 있는 Import의 역순입니다.의 목적ENVIRON메커니즘은 프로그램소스를 관리하기 쉬운 크기로 분할할 수 있도록 하는 것입니다.C 프로그래밍 언어에서 찾을 수 있는 #include와는 달리 공유 소스 파일을 한 번만 해석하면 됩니다.이 언어에서는 해당 파일을 포함하는 각 소스 파일에 대해 incluclude 파일을 해석해야 합니다.
의 예ENVIRON조문
mylib이라는 파일입니다.a68:
BEGIN INT dim = 3; # a constant # INT a number : = 120; # 변수 # 환경 예 1; MODE MATRIX = [dim, dim]REAL; # a type definition # MATRIX m1; 숫자 : = ENVENCE 2, print (number) END
의 예USING조문
usemylib라는 파일입니다.a68:
"mylib"에서 예2를 사용하여 BEGIN MATrix m2; #예제만 #인쇄(숫자); #는 mylib에서 선언합니다.a68 # print ( ( ( 2 UPB m1) )# 도 mylib 로 선언되었습니다.a68 # 환경의 예3 # 네스트 가능한 환경 #666 END
표준 ALGOL 68로부터의 언어 제한
- ALGOL 68 FLEX 및 가변 길이 어레이 없음
MODE STRINGFLEX 없이 구현- PAR parallel 절이 구현되지 않았습니다.
- 비표준 전송량
- 기타...
ALGOL 68C용 변환 컴파일러는 PDP-10, IBM System/360 및 기타 여러 컴퓨터에서 사용할 수 있습니다.
레퍼런스
- ^ Birrell, Andrew D. (December 1977). "System Programming in a High Level Language" (PDF). Dissertation submitted for the degree of Doctor of Philosophy. University of Cambridge. Retrieved 2007-04-22.
- ^ "Item Detail: Digital Equipment Corporation Model 340". Australian Computer Museum Society (ACMS). AceWare Web Hosting. Retrieved 2020-04-17.
- ^ Gardner, Martin (October 1970). "The fantastic combinations of John Conway's new solitaire game "life"" (PDF). Mathematical Games. Scientific American. No. 223. pp. 120–123.
For long-lived populations such as this one Conway sometimes uses a PDP-7 computer with a screen on which he can observe the changes [...] The program was written by M. J. T. Guy and S. R. Bourne. Without its help some discoveries about the game would have been difficult to make.
- ^ "The Modular Manual Browser: Adb". UnixDev.net. Archived from the original on 2016-03-03. Retrieved 2020-04-17.
- ^ Bourne, Stephen R.; Birrell, Andrew D.; Walker, Ian (1975). ALGOL 68C reference manual. Cambridge University Computer Laboratory.
외부 링크
- 공식 웹사이트
- Cambridge ALGOL 68: 컴퓨터 언어 이력 목록– 10개 이상의 출판물 참조 포함.
- A ALGOL 68C – PJ Gardner, Essex 대학교 – 1977년 3월 (370년부터 DECSystem-10까지)
- MVS에서 ALGOL 68C 실행 - 에뮬레이트된 MVS 시스템에 ALGOL 68C를 설치하는 방법