액션! (프로그래밍 언어)

Action! (programming language)
액션!
Actionscr.png
전체 화면 편집기
원본 작성자클린턴 파커
개발자최적화된 시스템 소프트웨어
초기 릴리즈1983년 8월; 38년(1983-08)
최종 발매
v3.6 / 1983년 11월 4일; 38년(1983-11-04)
플랫폼아타리 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 PCC 컴파일러를 사용할 수 있게 했고, 파커는 그 플랫폼에 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 BASICAtari 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비트 워드프로세서!편집자

참조

인용구

  1. ^ 액션! 소스 코드 - 2페이지, 알프레드 (초퍼 커맨더) 2015년 2월 2일 1:38 PM, AtariAge 포럼, 이것은 ICD로부터 받은 원래의 액션! 소스 입니다. 지퍼에 포함되지 않은 ICD 크로스 조립기를 사용한다. 그것은 쉽게 다른 형식으로 변환될 수 있다.
  2. ^ 파커 2015년 6시
  3. ^ 파커 2015년 6시 30분
  4. ^ a b 베이커 & 파커 1979, 페이지 1.
  5. ^ 파커 2015년 7시
  6. ^ 파커 2015년 28시
  7. ^ 파커 2015년, 20시
  8. ^ 파커 2015, 21시 30분
  9. ^ 파커 2015, 2시 45분
  10. ^ 파커 2015년 1시
  11. ^ "RAM/ROM Control On An XL/XE Computer". AtariWiki.
  12. ^ a b 모리아티 1984, 페이지 55.
  13. ^ a b c d 모리아티 1984년
  14. ^ 액션! 아타리키에서(PL)
  15. ^ 모리아티 1984, 페이지 60.
  16. ^ Laport, Leo (May–June 1984). "Lights, Camera, ACTION!". Hi-Res. p. 72.
  17. ^ Schneeflock, Ed (March 1985). "Action! A Poor Man's C?". BYTE. p. 273. Retrieved 19 March 2016.
  18. ^ 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.

참고 문헌 목록

외부 링크