액션! (프로그래밍 언어)
Action! (programming language)![]() 전체 화면 편집기 | |
원본 작성자 | 클린턴 파커 |
---|---|
개발자 | 최적화된 시스템 소프트웨어 |
초기 릴리즈 | 1983년 8월 | 전 )
최종 발매 | v3.6 / 1983년 11월 4일; 전 |
플랫폼 | 아타리 8비트 패밀리 |
크기 | 16K 뱅크 교환 카트리지 |
액션!은 클린턴 파커가 아타리 8비트 가족을 위해 작성한 절차적 프로그래밍 언어와 통합 개발 환경이다.ALGOL과 유사한 이 언어는 아타리 컴퓨터의 MOS Technologies 6502에 대한 고성능 코드로 컴파일되었다.액션!은 1983년부터 Optimized Systems Software에 의해 ROM 카트리지에 배포되었다.이 회사는 총 16kB의 코드를 가진 최초의 은행 교환 「슈퍼 카트리지」의 하나였다.
헨리 베이커와 함께 일하면서, 파커는 이전에 제록스 알토를 위한 시스템 프로그래밍 언어인 Micro-SPL을 개발했었다.액션!은 6502 프로세서를 지원하고 통합 풀스크린 편집기와 디버거를 추가하기 위한 변경사항과 함께 아타리에 대한 Micro-SPL 개념의 포트였다.
Action!은 적어도 두 개의 상용 제품, 즉 HomePak 생산성 제품군과 Games Computers Play 클라이언트 프로그램과 아날로그 컴퓨팅 및 Antic 잡지의 수많은 프로그램을 개발하는 데 사용되었다.편집자는 PaperClip 워드 프로세서에 영감을 주었다.그 언어는 다른 플랫폼에 포팅되지 않았다.
Action!의 조립 언어 소스 코드는 2015년에 저자에 의해 GNU 일반 공중 사용 허가서에 따라 제공되었다.[1]
역사
마이크로-SPL
대학원 공부를 하는 동안, 파커는 제록스 PARC에서 프린터 드라이버에 대한 아르바이트를 시작했다.그는 후에 제록스 알토 프로젝트로 옮겨서 그 시스템을 위해 몇 개의 게임을 썼다.[2]그의 박사 학위는 자연어 파싱이었고 그는 대학원 과정 동안 컴파일러 이론을 연구했다.[3]
헨리 베이커와 파커는 1979년 9월에 마이크로-SPL을 출시했다.Micro-SPL은 제록스 알토 워크스테이션 컴퓨터에서 시스템 프로그래밍 언어로 사용되도록 의도되었는데, 일반적으로 BCPL로 프로그래밍되었다.알토는 BCPL 컴파일러가 출력하는 마이크로코드 시스템을 사용했다.Micro-SPL은 동일한 형식을 출력하여 BCPL 프로그램이 Micro-SPL 프로그램을 호출할 수 있도록 한다.[4]
구문의 차이와는 별개로, Micro-SPL과 BCPL의 주요 차이점, 그리고 그 존재 이유는 Micro-SPL이 네이티브 BCPL 컴파일러보다 몇 배나 빠른 코드를 생산했기 때문이다.일반적으로 마이크로-SPL 프로그램은 BCPL의 약 10배, 좋은 손으로 작성한 마이크로코드보다 약 절반 정도 빨리 실행될 것으로 예상되었다.마이크로코드와 비교했을 때, 그들은 쓰는 데 절반의 시간과 디버깅하는 데 10%의 시간이 걸릴 것이라고 주장했다.[4]
액션!
파커가 집에서 사용하기 위해 아타리를 구입한 것은 이 시기였고, 이 플랫폼에 대한 개발 시스템이 부족하여 실망했다.이것이 액션의 발전을 위한 자극제가 되었다![5]
파커는 당초 직접 시스템 출시를 검토했으나 이후 판매 및 유통을 위해 최적화된 시스템 소프트웨어(OSS)와 제휴하기로 했다.OSS는 BASIC XL과 같은 유틸리티와 프로그래밍 언어에 초점을 맞췄기 때문에, 이것이 자연스럽게 액션에 적합했다![6]파커가 몇 년 동안 로열티로 생계를 유지할 만큼 판매량은 강했다.[7]
IBM PC는 C 컴파일러를 사용할 수 있게 했고, 파커는 그 플랫폼에 Action!을 포팅하는 것은 의미가 없다고 결정했다.[8]아타리 8비트 플랫폼의 판매가 줄면서 적어도 북미에서는 OSS도 줄어들었다.역사 후반에 액션! 배포는 OSS에서 일렉트로닉 아츠로 옮겨갔지만, 언어와 관련된 일은 거의 없었고, 판매는 얼마 지나지 않아 끝났다.[9]
파커는 2015년 인터뷰에서 언어가 계속 받는 지원 수준에 놀라움을 표시하며 당시 1980년대 후반에 비해 그 언어에 대한 관심이 더 많아 보였음을 시사했다.[10]
개발환경
액션!은 OSS SuperCartridge 형식의 초기 사례 중 하나이다.아타리의 ROM 카트리지들은 보통 8 kB로 제한되었고, 이것은 더 큰 프로그램을 지원하는 능력을 제한했다.슈퍼카트리지에는 16kB가 4kB 블록 4개로 정리돼 있었는데 이 중 2개가 언제든 눈에 띄었다.하위 4kB는 변경되지 않았으며 시스템은 어드레스 $AFF의 값을 변경하여 다른 3개 블록 사이를 전환할 수 있었다.[11][12]
액션! 시스템을 편집기, 컴파일러, 코드 테스트용 모니터, 편집기와 컴파일러 간 전환, 런타임 라이브러리 등 4개 섹션으로 나누어 이 설계를 사용했다.[12]런타임 라이브러리는 카트리지 자체에 저장된다.독립 실행형 애플리케이션을 배포하려면 OSS에서 실행으로 판매한 별도의 실행 시간 패키지가 필요하다! 툴킷.[13]
Action! 구조는 6502개의 opcode에 깨끗하게 매핑되도록 설계되었으며, 원패스 컴파일러에서 복잡한 최적화가 필요 없이 높은 성능을 제공하도록 설계되었다.[14]예를 들어, 로컬 변수는 활성화 레코드 스택에 할당되는 대신 메모리에 고정된 주소가 할당된다.이는 6502의 256바이트 스택의 경우 특히 어려운 스택 관리와 관련된 상당한 오버헤드를 없앤다.그러나 이것은 재귀 사용을 금지한다.[13]
통합된 Atari BASIC 및 Atari Assembler Editor 환경과는 달리, 액션!편집기는 라인 번호를 사용하지 않는다.두 개의 창을 표시할 수 있는 전체 화면과 스크롤 디스플레이는 물론 블록 작동과 전역 검색 및 교체가 가능한 것이 특징이다.[13]
모니터는 디버거 역할을 하여 전체 프로그램이나 개별 기능 실행, 메모리 표시 및 수정, 프로그램 실행 추적을 가능하게 한다.[13]
데이터 유형
Action!에는 세 가지 기본 데이터 유형이 있는데, 모두 숫자 데이터 유형이다.
바이트
내부적으로 서명되지 않은 8비트 정수로 표시됨.값 범위는 0에서 255까지입니다.
또한 CHAR 키워드를 사용하여 바이트 변수를 선언할 수 있다.
BYTE age=[21]; age를 선언하고 leftMargin=82; address 82에서 leftMargin을 선언한다.
카르디날
내부적으로 서명되지 않은 16비트 정수로 표시됨.값의 범위는 0에서 65,535까지입니다.
CARD 모집단=$600; 모집단을 선언하고 주소 1536 및 1537 CARD prevYear, curYear, next Year에 저장; 쉼표를 사용하여 다중 변수를 선언함
INTeger
내부적으로 서명된 16비트 정수로 표시됨.값은 -32,768 ~ 32,767 범위의 값이다.
INT 매우 콜드 = [-10] INT 이익Q1, 이익Q2,; 다중 변수를 선언하면 Q3, 이익Q4; 여러 라인에 걸쳐 분산됨
Action!에는 ARLEAR, POINTOR 및 사용자 정의 TYPE도 있다.부동 소수점 지원은 제공되지 않는다.
사용자 정의 TYPE의 예:
Code=[CARD x,y] 코드 포인트.x=42점y=23
예약어
예약된 단어는 Action! 컴파일러가 특별한 것으로 인식하는 식별자 또는 기호다.연산자, 데이터 유형 이름, 문 또는 컴파일러 지시문이 될 수 있다.
및 FI및 OR=(POINTER을 위한 ARRAY 이<>)BYTE FUNC 제안된 작전 운영 요구 능력 XOR#CARD 때 만약 RETURN>+[CHAR INCLUDE 경제적 정지 누적 시간->=]. INTSET*<>DEFINE"DOLSH STEP/. <>=의그렇지 않으면 & $; % ^ OD Type 종료! @
예시 코드
다음은 액션으로 작성된 에라토스테네스 체의 예 코드다.성능을 높이기 위해 ANTIC 그래픽 코프로세서를 비활성화해 DMA 엔진이 연산 중 CPU 사이클을 "스틸링"하는 것을 방지한다.
BYTE RTCLOK=20, ; addr of sys timer SDMCTL=559 ; DMA control BYTE ARRAY FLAGS(8190) CARD COUNT,I,K,PRIME,TIME PROC SIEVE() SDMCTL=0 ; shut off Antic RTCLOK=0 ; reset the clock to zero COUNT=0 ; init count FOR I=0 TO 8190 ; and flags DO FLAGS(I)='T ; "'T" is a compiler-provided constant for True OD FOR I=0 TO8190, 이제는 시브 DOIFFLAGS(나는)='T THEN PRIME=I+I+3 K=I+PRIME WHILE K<, =8190 DOFLAGS(K)='F을 운영하고 거짓 K==+PRIME ODCOUNT==+1 FI및 오디 TIME=RTCLOK에"'F"는compiler-provided 상수;화면 PRINTF("%E%UPRIMES의",COUNT을 복원하 타이머 독서 SDMCTL=34.)인쇄F("%E %U JIPIES", 시간) 반환
리셉션
브라이언 모리아티는 1984년 2월 아날로그 컴퓨팅 리뷰에서 액션!이 "아타리를 위해 출판된 가장 가치 있는 개발 도구 중 하나"라고 결론지었다.그는 이 매뉴얼이 패키지의 유일한 약점으로 꼽으며 "신뢰 부족, 불확실한 조직, 우수하고 딱딱한 기술 자료 부족에서 오는 것"이라고 주장했다.[15]
레오 라포르테는 1984년 5월/6월판 하이레스에서 액션을 검토했다.그는 "놀란 부쉬넬이 사람들이 탁구를 TV 화면에서 치게 될 것을 알았기 때문에 아타리에게 일어난 일 중 가장 좋은 일"이라고 평론을 시작했다.라포트는 편집자의 분할 화면과 절단 및 붙여넣기 능력에 주목하며 "반응이 매우 뛰어난 완전한 워드프로세싱 시스템"이라고 평했다.그는 액션!이 아타리 베이직보다 약 200배 더 빨리 달렸으며, "이 언어는 정교하게 튜닝된 경주용 자동차와 같다"[16]고 결론지었다.
1985년 바이트는 액션으로 작성된 소프트웨어의 컴파일 및 실행 속도를 높이 평가하였다!테스트로 Byte Ceench 벤치마크를 사용하여 조립 시 10초, BASIC에서 38분 동안 체를 18초 만에 10회 반복 완료했다.그 잡지는 또한 그 언어의 편집자를 칭찬했다.BYTE는 이 언어가 "둘 사이의 프로그램을 경로적으로 변환"할 정도로 C와 유사하다고 보고했으며, 포인터 지원을 승인했다.이 잡지는 "액션!은 사용하기 쉽고, 빠르고, 효율적이다"라고 결론지었다.아타리의 전권을 이용할 수 있다.액션! 아타리를 위한 프로그래밍을 완전히 새로운 차원에 넣는다."[17]
Ian Chadwick은 Mapping the Atari에서 "Action!은 아마도 아타리족에게 가장 좋은 언어일 것이다; 그것은 약간 C와 Pascal과 비슷하며, 포스(Forth)가 있다.추천한다."[18]
참고 항목
- 액션을 기반으로 다른 저자와 회사의 PaperClip, Atari 8비트 워드프로세서!편집자
참조
인용구
- ^ 액션! 소스 코드 - 2페이지, 알프레드 (초퍼 커맨더) 2015년 2월 2일 1:38 PM, AtariAge 포럼, 이것은 ICD로부터 받은 원래의 액션! 소스 입니다. 지퍼에 포함되지 않은 ICD 크로스 조립기를 사용한다. 그것은 쉽게 다른 형식으로 변환될 수 있다.
- ^ 파커 2015년 6시
- ^ 파커 2015년 6시 30분
- ^ a b 베이커 & 파커 1979, 페이지 1.
- ^ 파커 2015년 7시
- ^ 파커 2015년 28시
- ^ 파커 2015년, 20시
- ^ 파커 2015, 21시 30분
- ^ 파커 2015, 2시 45분
- ^ 파커 2015년 1시
- ^ "RAM/ROM Control On An XL/XE Computer". AtariWiki.
- ^ a b 모리아티 1984, 페이지 55.
- ^ a b c d 모리아티 1984년
- ^ 액션! 아타리키에서(PL)
- ^ 모리아티 1984, 페이지 60.
- ^ Laport, Leo (May–June 1984). "Lights, Camera, ACTION!". Hi-Res. p. 72.
- ^ Schneeflock, Ed (March 1985). "Action! A Poor Man's C?". BYTE. p. 273. Retrieved 19 March 2016.
- ^ Chadwick, Ian (1985). "Author's Preface To The Revised Edition". Mapping the Atari. Greensboro, North Carolina: Compute! Publications, Inc. pp. v–vi. ISBN 0-87455-004-1.
참고 문헌 목록
- Baker, Henry; Parker, Clinton (September 1979). Micro-SPL (PDF) (Technical report). Synapse Computer Services. CiteSeerX 10.1.1.126.6877.
- Parker, Clinton (31 December 2015). "ANTIC Interview 111, Clinton Parker, Action!" (podcast). Interviewed by Randy Kindig.
- Moriarty, Brian (February 1984). "Action! - A new language for the Atari!". ANALOG Computing. No. 16. pp. 54–61.