상위 10 개 기사

체르노빌 재해
한국 전쟁
중국 숫자
폐 계면활성제
피츠버그 공립학교
영국의 강의 명부
멕시코
히브리어 성경
슬로베니아 문학
중국

News:

APL (프로그램 언어)

APL
패러다임 배열, 기능, 구축하는, 모듈
안으로 나타나는 1964
곁에 디자인하는 케네스 E. Iverson
개발자 케네스 E. Iverson
타자를 치는 분야
중요한 실시 IBM APL2, Dyalog APL, APL2000, 예리한 APL
방언 A+, Dyalog APL, APLNext
곁에 좌우하는 수학 표기법
좌우하는 J, K, Nial

APL (A Programming Language는) 이다 배열 프로그램 1957년에 곁에 발명되는 표기법에 근거하는 언어 케네스 E. Iverson 에 동안에 하버드 대학. 그것은 컴퓨터의 신청과 관련있는 화제의 가르침 그리고 분석을 일관된 표기법을 제공하는 시도로 기인했다. Iverson는 표제가 붙은 책에서 1962년에 그의 표기법을 간행했다 프로그램 언어. 1965년까지, 표기법의 부분 집합은 프로그램 언어로 실행되고, 그 후에 IVSYS로 알려지다. 나중에, 그것의 상업적인 방출 이전에, APL는 책의 제목에게서 그것의 이름을 얻었다. Iverson는 받았다 Turing 포상 그의 일을 위해 1979년에.

Iverson의 표기법은 나중에 기술하기 위하여 이용되었다 IBM System/360 기계 건축술, 묘사 기존하는 문서 및 몇몇 이전에 주목되지 않는 문제 계시하기 보다는 훨씬 더 간결하고 그리고 정확한. 나중에, a Selectric typeball는 특별하게 이 표기법의 선형 대표를 쓰기 위하여 디자인되었다. APL의 이 특유한 양상, 시각적으로 실행될 가동을 묘사하는 특별한 문자집합의 사용은, 오늘 기본적으로 불변에 남아 있다.

APL 언어 특징 전체에 작동하는 가동의 리치 설정 배열 a의 벡터 명령어 집합 같이 자료의, SIMD 건축술. 많은 컴퓨터 언어가 요구하는 동안 반복 에, 전체 배열을 가진 APL 거래에 있는 예를 들면, 2개 배열을, 기능 즉시 전형적으로 합치십시오. glyphs가 실행될 가동을 대표하는 특별한 문자집합 함께, 이것은 격렬하게 루프의 잠재적인 수를 감소시키고 더 작은을, 더 간결하고 더 조밀한 프로그램.

연속적인 사용의 수십년을 보낸 모든 프로그램 언어로 것과 같이, APL는 그것의 이른 방출에서 위쪽으로 양립한 방법에서, 일반적으로, 현저하게 진화했다. APL는 보통 이다 통역 그리고 상호 작용하는, 일반적으로 특색짓는다 읽 평가하 인쇄한다 루프를 (REPL) 명령과 표정 입력을 위해. 오늘, 거의 모든 현대 실시 지원 구축된 프로그램 몇몇 방언이 지금 어떤 모양을의 특색짓는 동안 객체 지향 프로그램 구조물.

목차

역사

나중에 인 무슨을의 APL 프로그램 언어이기 위하여 첫번째 화신은 곁에 발명된 1957년에 표기법을 기술하는 책이었다 케네스 E. Iverson 에 동안에 하버드 대학. 1962년에 간행해, 책에서 기술된 표기법은 알아볼 수 있었다 그러나 APL에서 격원했다.

IBM는 시장에 APL의 소개를 주요하게 책임졌다. 1965년에, 표기법의 부분은 재생산되고 프로그램 언어로 실행했다. APL는 첫째로를 위해 1967년에 유효했다 IBM 1130년 것과 같이 APL \ 1130년[1]. APL는 1960년대 후반에서 1980년대를 통해 주요골격 시분할 시스템에 그것의 발판을 마련했다. 나중에, 때 적당하게 기계설비를 실행하는 것은 개인용 컴퓨터 환경에 1980 년대 중반에 일렀던 것에서 마지막으로 유효한 시작, 많은 사용자 그들의 신청 이동했다이었다.

이른 IBM APL 해석자 를 위한 IBM 360 그리고 IBM 370 기계설비는 호스트 서비스를 의지 대신에 그들의 자신의 다중 사용자 관리를 실행했다, 따라서 그들은 시분할 시스템이었다. 1966년에 첫째로 소개해, APL \ 360 체계는 다중 사용자 해석자이었다. 1973년에, IBM는 풀어 놓았다 APL.SV 제안한 동일한 제품의 계속은 어느 것, 그러나인지 공동 가변 로 운영 체계와 같은 APL 체계의 이상으로 기능에 접근하는 방법은 신청한다. 1970 년대 중반에서는, IBM 주요골격 해석자는에 사용을 위해 적응시키 조차 IBM 5100 시간의 다른 대부분의 소규모 컴퓨터가 단지 BASIC만 제안할 때, 작은 CRT 및 APL 키보드를 비치하고 있던 탁상용 컴퓨터. 1980년대에서는 VSAPL 프로그램 제품은 대폭적인 사용법을을 가진 즐겼다 CMS, TSO, VSPC, CICS 사용자.

몇몇 시분할 상사는 IBM APL \ 360 해석자의 변경한 버전을 사용하여 APL 서비스를 판매한 1970 년대 및 1960 년대에서 뛰어올랐다. 북아메리카에, 더 잘 알려지는 그들은 있었다 i. P. 날가로운 것은 관련시킨다, scientific Timesharing Corporation및 컴퓨터 회사 (TCC). IBM 4331와 같은 보다 적게 비싼 주요골격의 첫째로 출현으로 과 나중에 개인용 컴퓨터에는 시분할 공업 1980 년대 중반까지 사라지는을 제외하고 모두가 있었다.

예리한 APL 유효했다에서 i. P. 날가로운 것은 관련시킨다, 첫째로 1960 년대에 있는, 그리고 나중에 시작하는 프로그램 제품 약 1979년으로 시분할 기초에. 예리한 APL 많은 언어 연장을 가진 진보된 APL 실시는과 같은 이었다 포장 (단 하나 가변으로 한개 이상 목표를 끼워넣는 기능), 파일 시스템은, 배열의, 보금자리를 지었다 공동 가변.

APL 해석자는 다른 주요골격에서 가능하 중형 전산기는, 주목할 만하게 또한 제조한다 Burroughs, CDC, 데이터 제너럴, 12월, 해리스, Hewlett-Packard, 시멘스, 제록스및 다른 사람.

APL2

, IBM APL 발달, 박사의 지도력하에 1980년대 초에 시작 짐 브라운, 그것의 1 차 증진으로 개념을 포함한 APL 언어의 새로운 자료이라고 실행하는 보금자리가 된 배열 배열이 다른 배열을 포함할지도 모르다 곳에 프로그램 작업 흐름으로 보금자리가 된 배열의 통합을 촉진한 새로운 언어 특징 플러스. APL 언어, 좌 IBM의 발달을 관리하는 Ken Iverson, 더 이상 및 결합하는 i. P. 날가로운 것은 관련시킨다 그가, 많은 가운데에, 그의 시각에 따르면 더 많은 것이기 위하여 예리한 APL의 발전을 지시한 곳에. Iverson는 나중에 개발했다 J 언어.

다른 납입업자가 발전 새로운 기계설비를 위한 바쁘기 APL 해석자 때문에, 주목할 만하게 유닉스- 기초를 두는 마이크로컴퓨터, APL2는 거의 반드시 새로운 APL 해석자 발달을 위해 선택된 기준이었다. 오늘 조차, 대부분의 APL 납품업자는 그들의 제품을 위한 판매 강조점으로서만 100%년에 접근하는 APL2 겸용성을 인용한다.

APL2 IBM를 위한 본체 컴퓨터는 지금도 유효한 오늘이고, 첫째로 유효했다를 위해 CMS 그리고 TSO 약 1980년. 매우 나중에 지켜지는 APL2 워크스테이션 판 (창, OS/2, AIX, 리눅스 및 Solaris) 1990년대 초에.

마이크로컴퓨터

APL의 첫번째 마이크로컴퓨터 실시는 MCM/70에 있었다 8008- 1973년에 근거한 가공업자. A 작은 APL 인텔을 위해 8080 불린 EMPL는 가득 차있는 APL의 기능의 대부분과 더불어 1977년 및 Softronics APL에, 풀어 놓였다, 왜냐하면 8080 근거한 CP/M 체계는 1979년에 풀어 놓였다.

1977년에, 사업 수준 APL Z80 가공업자에 근거하여 TIS APL로, 알려져 있는 풀어 놓였다. 그것은 ~를 소개해서 대부분의 2수 통신수를 위한 적당한 좌 논쟁의 전화면 입력 그리고 엇바꾸기 플러스 APL를 위한 파일 기능의 전 세트를, 특색지었다. 모든 단 하나 특성 2수 기능과 같은 -/에 접두어.

선봉 APL는 유효했다를 위해 Z80 CP/M- 1970 년대 후반에 근거한 가공업자. TCC는 Motorola를 위한 APL.68000를 1980년대 초에 풀어 놓았다 68000- 근거한 가공업자는, MicroAPL를 위한 기초인 이 체계 APLX 제품을 제한했다. i. P. 날가로운 것 동료는 - IBM PC를 위한 - IBM PC 그리고 PC/370를 위한 그들의 APL 해석자의 버전을, 풀어 놓았다 경쟁자 써졌다 IBM 370 주요골격 부호의 다량을 재사용하는 촉진한. 논증할 수 있, IBM 개인용 컴퓨터를 위한 제일 알려져 있는 APL 해석자는 이었다 STSC's APL*Plus/PC.

1980년대 초에, Analogic 것 Corporation 발전했다 APL 기계, 인 배열 가공 컴퓨터는 APL에서서만 프로그램되는 것을 디자인했다. 실제로 3개의 처리 장치, 사용자의 워크스테이션이 있었다 IBM PC, 곳에 프로그램이 들어가고 편집된, Motorola지 6800 APL 해석자를 달린 가공업자, 그리고 원시인을 수행한 비슷한 배열 가공업자. 그것의 소개의 때에 APL 기계는 할 것 같았다 유효했던 가장 빠른 APL 체계. 과학 기술 성공이, APL 기계 매매 실패이었더라도. 처음 버전은 단 하나 과정을 이번에 지원했다. 프로젝트가 중단될 당시, 디자인은 다수 사용자를 허용하기 위하여 완료되었었다. 잡담으로, APL 기계의 특별한 양상은 많은 작업 공간에 의해 공유한 가변 도서관에서 또는 단 하나 기능 이 한 번만 존재했다는 것을 작업 공간의 도서관이 그런이라고 편성되었다 이었다. APL 기계 프로젝트의 일원의 몇몇은 이전에 Burroughs 실행을 가진 다수 년을 보냈었다 APL \ 700.

1개의 단계에서, 마이크로소프트 주식회사 APL의 버전을 풀어 놓는 것을 계획했다, 그러나 이 계획은 결코 구체화하지 않았다.

초 1978년 간행물의 Rodnay Zaks 에서 Sybex 이었다 마이크로프로그램을 짜넣은 APL 실시 ISBN 0895880059 PDP를 위한 마이크로코드를 위한 완전한, 총 근원 명부작성/APL를 실행하는 LSI-11 가공업자는인지 어느 것. 이것은 그의 PhD 논제의 물질일지도 모른다.

개관

[원래 연구?]

문제 영역 (수학, 과학, 기술설계, 컴퓨터 디자인, 로봇 공학, 자료 구상, 보험 통계 과학, 전통적인 DP, 등등)의 아주 넓은 세트에 APL는 극단적으로 강력하, 표현이 풍부한간결한 프로그램 언어는 상호 작용하는 환경에서, 전형적으로 놓았다. 그것은 컴퓨터를 기술하는 방법으로 표현해서 원래, 많은 가운데에, 창조되었다 수학 표기법 컴퓨터에 의해 해석될 수 있던 준엄한 방법으로. 배우는 것은 쉽다 그러나 몇몇 APL 프로그램은 신참을 위해, 특히 이해하는 언젠가를 걸릴 수 있다. 다른 몇몇 프로그램 언어는 APL의 포괄적인 배열 기능을 제안한다.

전통적으로 구축된 프로그램 언어와는 다른, APL에 있는 부호는 사슬로 전형적으로의 구축된다 단항 또는 2수 기능 그리고 통신수 위에 행동 배열. APL에는 비표준 많은 것이 있기 때문에 원시인 (약간 상징의 단 하나 상징 또는 조합에 의해 나타나는 기능과 통신수), 기능이 또는 없다 통신수 앞서기. 이른 APL 실시는 없었다 제어 구조 (또는 동안 루프, 만약에 그 후에 - 그밖에 한), 그러나 배열 가동을 를 사용하는, 사용법의 구축된 프로그램 구조물은 정당한 필수이. 예를 들면, iota 기능 (1차원 배열을 열매를 산출하는, 또는 1에서 N에 벡터,) 를 위해 루프를 대체할 수 있다 반복. APL의 최근 실시는 일반적으로 포괄적인 제어 구조를 포함한다, 따라서 자료 구조와 프로그램 조절 교류는 명확하게 일 수 있고 청결하게 분리했다.

APL 환경은 a에게 불린다 작업 공간. 작업 공간에서는 사용자는, i.e 프로그램과 자료를 정의할 수 있다. 자료값은 프로그램 이상으로 또한 존재하고, 사용자는 필요성 없이 프로그램을 정의하기 위하여 자료를 교묘히 다룰 수 있다. 예를 들면,

할당한다 벡터 가치 N에 4 5 6 7;

4개를 (8 9 10 11를 주는) 모든 가치에 추가하고 인쇄한다 (지정 화살을 사용하는 가변에 계산서의 끝부분에 지정되지 않는 반환 가치 APL 해석자에 의해 표시된다);

N의 합계를, i.e 인쇄한다. 22.

사용자는 모든 가치, 프로그램 및 실행 상태에 작업 공간을 저장할 수 있다.

APL는 비의 세트의 그것의 사용을 위해 유명하다ASCII 전통적인 산수와 대수학 표기법의 연장인 상징. 단 하나 특성 이름이 의 있는 SIMD 벡터 함수는 APL가 계산과 같은 자료 전이를 위한 산법의 조밀한 정립을 가능하게 한다 일방통행 이다 Conway의 생활의 게임 1개의 코드 행에서 (보기). APL의 거의 모든 버전에서는, 1 코드 행에서 1개의 표정에 있는 어떤 계산 가능 함수든지, i.e, 표현하는 것이 이론적으로 가능하다.

그것의 집광된 성격 및 비표준 특성 때문에, APL는 때때로 불린다 계속 "쓰기-전용 언어첫번째 느낌에 APL 프로그램 깡통이 해독하고 싶은 독서 그리고 ", 이집트 hieroglyphics. 특별한 것 때문에 문자집합, 많은 프로그래머는 특별한 사용한다 키보드 APL 부호 저작을 위한 APL keytops로. ASCII 문자를 사용하여 APL 부호를 쓰는 각종 방법이 있더라도[2], 실제로는, 그것은 거의 결코 행해지지 않는다. (Iverson의 논제를 대략 지원하고 이것은 생각될지도 모른다 생각의 공구로 표기법[표창장은 필요로 했다].) 최대량은 그렇지 않으면 모든 현대 실시 특별한 mappings와 더불어 표준 키보드 배치를, 또는 이용한다 입력 방법 편집자 접근 비 ASCII 특성에. 역사적으로, APL 글꼴은 대문자 이탤리체 글자 알파벳 문자와 더불어 특유하다, 및 계속 강직한 숫자 및 상징. 대부분의 납품업자는 주문 글꼴에 있는 APL 문자집합을 표시하는 것을 계속한다.

APL의 옹호자는 소위 쓰기-전용 부호의 보기가 거의 불변으로 어떤 언어든지에서 생길 수 있는 빈약한 프로그램 연습 또는 초심자 과오의 보기다는 것을 주장한다. APL의 옹호자는 또한 더 평범한 컴퓨터 언어를 가진 보다는 APL에 훨씬 더 생산적다는 것을, 그리고 소프트웨어를 일하는 것이 다른 기술을 사용하여 보다는 더 적은 시간에서 그리고 멀리 몇몇 프로그래머로 멀리 실행될 수 있다 주장한다. APL는 개인이 더 단단한 문제를 빨리 해결하게 한다. 더구나, 조밀하고, APL는 대규모 소프트웨어 개발에 많은 코드 행에서 발생하는 복합성이 극적으로 감소되는 수 있는 때 잘 빌려준다. 많은 APL 옹호자 및 개업자는과 같은 표준 프로그램 언어에서 프로그램을 전망한다 COBOL 그리고 자바비교로 지루한. APL는 무역 체계로와 같이 수시로 시간 에 시장이 중요한 곳에 있다.

Iverson는 나중에 디자인했다 J 프로그램 언어 사용하는지 어느 것이 ASCII 겹자 특별한 상징 대신에.

보기

여전히 요구할 아주 간단한 예는 최대에 있는 몇몇 코드 행 프로그램 언어를이고 후비는 물건 6 (1-40년에서) 추첨 난수 생성기, 반복한 수를 보장하고, 상승 주문에 있는 결과 분류하기로 완료한다 비 배열하지 않는다:

↑6? 40

뒤에 오는 표정 종류 워드 길이에 따르면 모체 x에서 저장되는 낱말 명부:

x [⍋X+.≠';]

Dyalog APL에 쓴 뒤에 오는 기능 "생활"는, 부울 논리 연산 모체를 가지고 가고 새로운 발생을에 따르면 산출한다 Conway의 생활의 게임:

뒤에 오는 보기에서는, 또한 Dyalog는 변하기 쉬운 "txt"에, 첫줄 어떤 HTML 부호를 할당하고 마지막 선에서 보이는 것과 같이 텍스트 전용을 돌려보내는 모든 HTML 꼬리표를 제거하기 위하여 그 후에 APL 표정을 이용한다.

뒤에 오는 표정은 모두를 찾아낸다 소수 1에서 (1의 색인 근원을 추정하는) R에. 시간과 공간 둘 다에서는, 계산은 O (R ²)이다.

(∼R∈R°.×R) /R←1↓ιR

우에서 좌로, 이것은 의미한다:

  1. ιR는 벡터 포함을 창조한다 정수 1에서 R에 (R가 = 프로그램, ιR 시작되는 시점에 6 1 2 3 4 5 6이인 경우에)
  2. 이 벡터 (↓ 기능)의 첫번째 성분을, i.e 떨어뜨리십시오. 1. 이렇게 1↓ιR는 2 3 4 5 6이다
  3. 놓으십시오 벡터 (←, 지정 원시인)에 R를
  4. 생성하십시오 바깥곱 R에 의해 곱하는 R의, i.e. 인 모체 곱셈표 의 R (°.× 기능)에 의하여 R
  5. R에 있는 대응 수가 바깥곱 모체에 (∈는, 포함 함수를 놓았다) 있는 각 장소에서 1를 가진 R와 벡터를, i.e 동일한 길이 건설하십시오. 0 0 1 0 1
  6. 논리적으로 벡터 (0)에 있는 가치를 (∼, 부정 기능)에 그들 그리고 그들에 변화 0 부정하십시오, i.e. 1 1 0 1 0
  7. 대응 성분이 1 (/기능)인 R에 있는 품목을, i.e 선정하십시오. 2 3 5

계산

APL는 복잡한 모체 가동을 실행할 수 있던 속도에서 유일했다. 예를 들면, 아주 큰 모체 곱셈은 그들 보다는 오늘 매우 약소 인 기계에서만 몇 초를 걸릴 것입니다. 이 이점을 위한 기술기도 하고 경제 이유가 있었다:

  • 상업적인 해석자는 높 조정한 선형 대수 내장 함수 루틴을 전달했다.
  • 아주 낮게 통역 간접비는 당 배열한다 아닙니다 당 성분을 부딪혔다.
  • APL 응답 시간은 이른 낙관 컴파일러의 런타임에 호의를 베풀 비교했다.
  • 제공되는 IBM 마이크로코드 다수 IBM/370 주요골격에 APL를 위한 지원.

넓게 인용한 종이는 (Phil Abrams가 저작하는) "APL 기계" APL가 퍼지는 사용을 만든 신화를 영속시켰다 게으른 평가 결과가 필요할 때까지 계산이 실제로 실행되지 않을 곳에 그 때 그 계산만 준엄하게 요구했다. 명백하고 (실행하게 쉬운) 게으른 평가는 이다 J 벡터 : 단항 때 iota 부호, a로 지켜진 is is에서 부닥친다 대표 즉시 산출 대신에, 기억 뿐만 아니라 따라서 언젠가 절약.

이 기술은 일반화되지 않았더라도, 언어에서 제일 생존 기계장치를 구현한다: 단계가 있는 가동의 순서를 지정하지 않기. X3J10에 의해 최후에 표준화해 마침, APL는 이렇게 높게 이다 자료 평행한, 그것은 계획 가동에 언어 implementors에게 굉대한 자유를 되도록 능률적으로 준다. 컴퓨터 혁신으로와 같은 캐시 기억 장치, SIMD 실행은 상업적으로 유효하게, 적은 여분 노력 소비한 재 낙관 저수준 세부사항으로 향한 APL 프로그램 되었다.

해석자

오늘, 최대 APL 언어 활동은 밑에 약간 활동과 더불어 Microsoft Windows 운영 체계의 밑에, 일어난다 리눅스, 유닉스, Mac OS. 비교로 조금 APL 활동은 본체 컴퓨터에 오늘 일어난다.

APLNow (이전에 APL2000)는 리눅스, 유닉스 및 창의 밑에 운영하는 진보된 APL 해석자를 제안한다. 그것은 창 자동화를 지원한다, 지원에는 운영 체계 및 사용자 정의 DLLs에 부르고, 진보된 APL 파일 시스템이 있고, APL 언어 발달의 현재 수준을 대표한다. APL2000 제품은 진보된 계속의이다 STSC's 성공적인 APL*Plus/PC 및 APL*Plus/386 제품라인.

Dyalog APL 리눅스, 유닉스 및 창의 밑에 운영하는 진보된 APL 해석자는 이다. Dyalog에는 APL 언어에 새로운 포함하는 호전적인 연장이 있다 객체 지향 특징, 일관된 것 플러스 수많은 언어 증진, namespace 천연 namespaces 뿐만 아니라 두를 위해 그것의 마이크로소프트 자동화 공용영역, 이용되는 모형. 창 플래트홈을 위해, Dyalog APL는 마이크로소프트와의 단단한 통합을 제안한다. 마이크로소프트 시각적인 스튜디오 발달 플래트홈과의 한정된 통합 플러스 그물.

IBM는 IBM AIX, 리눅스, Sun Solaris 및 창 체계를 위한 IBM APL2의 버전을 제안한다. 이 제품은 IBM 주요골격을 위해 제안된 APL2의 계속이다. IBM APL2는 논증할 수 있 언어에 연장의 다음 세트를 단단한 실시 기준을 제공한 보금자리가 된 배열에 집중하는 가장 유력한 APL 체계, 이었다.

MicroAPL는 제안을 제한했다 APLX, 전면특집 64 조금 해석자 를 위한 리눅스, 및 Apple Mac OS 체계.

Soliton는 제안을 I.의 더 발달인 Linux 시스템을 위한 SAX 해석자 (유닉스를 위한 예리한 APL) 관련시킨다, 와 유닉스. P. 날가로운 것은 예리한 APL 제품을 관련시켰다. 다른 대부분의 APL 해석자와는 다른, 케네스 E. Iverson 방법에 의하여 보금자리가 된 배열에 있는 약간 영향이 실행되었다 예리한 APL 및 SAX에서 있었다. 다른 APL 실시는 거의 전부 APL2로 IBM가 놓인 과정을 따랐다, 따라서 예리한 APL에 있는 몇몇 중요한 세부사항은 다른 실시와 다르다.

편집

APL 프로그램은 일반적으로 이다 해석하는 그리고 수시로 더 적은 집계하는. 실제로, 대부분의 APL 컴파일러 번역하는 저수준 언어에 근원 APL와 같은 C, machine-specific 세부사항을 저수준 컴파일러에게 맡기기. APL 프로그램의 편집은 회의에 있는 빈번하게 토론한 화제이었다. 어떤이의 보금자리가 된 배열과 같은 APL 언어에 더 새로운 증진 언어를 집계하게 점점 곤란한 만들더라도 APL 편집의 아이디어는 발달의 밑에 오늘 아직도 있다.

과거에는, APL 편집은으로 본체 컴퓨터에 다른 주류 언어에, 특히 대등했던 실행 속도를 달성하는 방법 간주되었다. 몇몇 APL 컴파일러는 기계 부호로 편집을 완전히 하기에 APL에 쓰인 개발 노력의 성공, 그러나 비교로 약간의 몇몇 수준을 수년에 걸쳐 들어갔다 달성했다.

APL 프로그램 1명의 납품업자의 APL 해석자에게서 또 다른 한개로 이동할 때 케이스가 이다 것과 같이, APL 프로그램을 불변으로 그들의 내용에 변화를 요구할 것이다. 컴파일러에 따라서, 변하기 쉬운 선언은 필요할 것이 지도 모르다, 특정 언어 특징은 제거되거나 피할 필요가 있을 것이거나, APL 프로그램은 어떻게 해서든지 청소될 필요가 있을 것입니다. 수행 기능 (표정 평가자) 및 각종과 같은 언어의 몇몇 특징 반영 그리고 내성 기능의 원본을 돌려보내거나 원본에서 새로운 기능을 구체화하는 기능과 같은 APL에서 기능은 기계 부호 편집에서 실행하기 위하여 간단하게 실제적 이지 않다.

상업적인 컴파일러는 시장에 곁에 주어졌다 STSC IBM의 VSAPL 프로그램 제품에 추가로 1980 년대 중반에서. 현대 APL 컴파일러와는 다른, 이 제품은 해석자 환경에서서만 수행할 기계 부호, 그것을 해석자 분대를 삭제하기 위하여 가능하지 않았다 일으켰다. 컴파일러는 기계 부호에 많은 단계가 있는과 벡터 연산을 집계할 수 있었다, 그러나 APL 해석자의 서비스를 조금 더 최신 기능을 실행하기 위하여 의지하고, 보다는 오히려 그들을 집계하는 것을 시도한다. 그러나, 극적인 speedups는 무겁게 반복 APL 부호를 위해, 특히 생겼다.

동일한 시간의 주위에, 책 APL 컴파일러 에 의하여 디모데 Budd 인쇄에서 나타나는. 이 책은 안으로 써진 APL 통역의 건축을 선발했다 C, 특정 최적화를 실행한 루프 융해 배열 언어의 필요에 특성. 바탕 언어는 에서 APL 같이 APL 언어의 약간 규칙이 허용 능률적인 편집에 바뀌거나 이완되었다 이었다. 통역은 그 때와 APL 작업 공간의 뛰기 좋은 외부가 집계되는 C 부호를 방출할 것입니다.

오늘, 실행 속도는 보다 적게 긴요하 많은 대중적인 언어는을 사용하여 실행된다 가상 기계 - 런타임에 해석되는 지시. Burroughs 또는 Unisys APLB 해석자 (1982년)는 APL 특정한 가상 기계를 위한 부호를 일으키기 위하여 동적인 증대 편집을 이용하는 첫번째 이었다. 그것은 인식기가 그들의 기능적인 의미를 바꾸는 때 몰래 재컴파일했다. 제거 이외에 분석 그리고 주요 실행 경로에서 에러-검사 어떤은 또한, 그런 편집 사용자 정의 기능적인 셈숫자의 반복한 입장 그리고 출구를 합리화한다. 이것은 더미 체제를 피하고 APL의 붙박이 통신수에 의해와 같은 한 함수 호출을 위한 굴욕은 각각 감소시킨다.

정점, 연구 APL 컴파일러는, Snake Island Research Inc.에서 가능하다 정점은 편평한 APL (ISO N8485의 부분 집합)를로 집계한다 , 평행한 의미론을 가진 기능적인 배열 언어는, 현재 밑에 달린다 리눅스. 정점 생성된 부호 용도 루프 융해 그리고 배열 수축, 해석자 (순열 벡터의 예를들면, 향상)에게 유효한 특별하 케이스 산법 일반적으로, 저것에의 대등한 성과의 수준을 달성하기 위하여 포트란.

APLNext VisualAPL 체계는 VisualAPL가 진실하다평범한 APL 체계에서 출발 에서이다. 다른 사람에 완전히 공동이용이 가능한 순수한 언어 . 마이크로소프트. 그물 언어와 같은 VB.Net 그리고 C#. VisualAPL는 고유하게 객체 지향 및 Unicode 기초를 두는 이다. VisualAPL가 유산 APL 실시의 특징의 대부분을 통합하는 동안, VisualAPL 언어는 이기 위하여 유산 APL를 늘인다. 그물 고분고분한. VisualAPL는 마이크로소프트 표준 시각적인 스튜디오 IDE에서 접대되고 등과 같은, 다른 사람의 저것과 동일한 편집을 방식으로 빈다. 순수한 언어. 생성해서. 순수한 공통 언어 런타임 (CLR) 부호, 그것은 마이크로소프트 저스트-인-타임 32 비트 64 비트 기계설비를 지원하기 위하여 컴파일러 (JIT)를 이용한다. 특히 (기능 논쟁의 선택에게) 강한 타자를 칠 것이 사용될 때, 내용이 풍부한 성과 speed-ups 전면 유산 APL는 보고되었다.

APL에 C# 통역은 둑길 그래픽 체계에서 가능하다. 이 제품은, APL 환경의 이상으로 완전하게 달리기 위하여 동등한 C#에 번역된 APL 부호를 허용하기 위하여 디자인되었다. 둑길 컴파일러는 배열 기능의 런타임 도서관을 요구한다. 극 약간 speedup는, 때때로, 보이고, 그러나 마이크로소프트에서 고유한 최적화 때문에 일어난다 . 그물 기구.

용어

APL는 명확한 사이 구분한다 기능 그리고 통신수. 기능은 논쟁으로 가치를 (가변 또는 불변의 것 또는 표정) 가지고 가고, 결과적으로 가치를 돌려보낸다. 통신수 (aka higher-order 기능) 포획은 논쟁 및 관련된 반환, 결과적으로 유도 함수로 작용한다. 예를 들면 "합계" 기능은 "추가" 기능에 "감소" 통신수를 적용해서 파생된다. (적용하는 것은 2개 가치의 더 큰 것 돌려보내는)에 동일한 감소 통신수를 "천장" 기능 가치의 그룹 (벡터)의 가장 큰 것 돌려보내는 파생한 "최대" 기능을 창조한다. J 언어에서는, Iverson는 "기능"와 "통신수"를 기간 "동사"와 "부사"를 대용했다.

APL는 또한 언어로 건설되곤, 그리고 상징의 상징, 또는 조정 조합에 의해 대표된 그 특징을, 것과 같이 확인한다 원시인. 대부분의 원시인은 기능 또는 통신수 이다. 코딩 APL는 크게 비 원시 기능 및 (APL의 몇몇 버전에서) 통신수를 쓰기의 과정이다. 그러나 약간 원시인은 기능 도 아니다 통신수 아니 지정 것 가장 두드러지게, 여겨지지 않는다.

문자집합

APL는 계속 유일한, 비표준 문자집합의 그것의 선택을 위해 항상 강평된다. 그것을 배우는 어떤이 보통 열렬한 지지자에 어울린ㄴ다는 것을 관측은 뒤에 약간 무게가 다는 것을 보여준다 Iverson'표기법이 사용한 s 아이디어는 효과를 낸다. 처음에서는, 놓은 대중적인 그들을 고용 APL 특성을 재생할 수 있던 몇몇 끝 장치가 있었다 IBM Selectric 특별한 APL 유형 성분과 함께 인쇄 기계장치. 한동안, 고품질 그래픽 표시 및 인쇄 장치의 보편적인 사용과 더불어, APL 특성 글꼴 문제는 크게 삭제되었다; 그러나, APL 특성에 들어가기의 문제는 사용을의 요구한다 입력 방법 편집자 또는 초심자를 좌절시킬지도 모른다 특별한 키보드 mappings, 다른 언어에 익숙하게 했다. 의 통속화로 Unicode APL 문자집합을 포함하는 기준, 필수 글꼴을 얻기의 문제 가버리기 위하여 자세를 취해 보인다.

사용자의 입장에게서, 추가적인 특성은 연상 기호 가능한 APL에게 특별한 우아 및 concision를을 사용하여 다른 언어에서, 대표하는 기능의 상징 시각적으로 줄 수 있다. 또는 그것은 복합성과 unreadability의 어리석은 정도로 상징이 설명 없이 단 하나 질량으로 함께 묶일 때, 전형적으로 이끌어 낼 수 있다. 또는 무리하게 곤란할 수 있고 시간이 걸리는 그 때 들어가기 위하여 나중에 그 APL 계산서를 편집하십시오.

APL 상징과 키보드 배치

편지와 APL 특성을 관련시키는 연상 기호를 주의하십시오: 물음표Q, P, rhoR, 기본적인 가치B, 암호로 고쳐 쓰십시오N, 계수M 등등. 이것은 영어 스피커가 1개를 제공하는 비 APL 키보드에 APL를 타자를 치도록 있다 자기의 스크린에 시각적인 의견이 쉽게 한다. 더구나, 전사술은 열쇠의 정면 또는 그들의 정상에 표준 키보드에 부착을 위해, 생성했다.

APL2와 다른 현대 실시를 위해 최신 키보드 도표, 적용 가능한 것, 유효하다: 창을 위한 조합 배치.

모든 APL 상징은 안으로 출석한다 Unicode (몇몇 APL 제품이) 아직 이것을 특색짓지 않을지도 모르다:

' ( ) + , - . /  :  ; < = >  ? [ ]
\ _ ¨ ¯ × ÷

추가적인 APL 특성은 곁에 유효했다 overstriking 또 다른 한개에 1개의 특성. 예를 들면, 통나무 상징은 교대를 overstriking 형성되었다P 교대로O. 이것은 과오를 정정하고 프로그램 선의 편집을 복잡하게 했다. 이것은 궁극적으로 어느 정도 조밀한 작풍이 있는 이른 APL 프로그램을 위한 이유일지도 모른다 - 그들은 편집하기 곤란했다.

위 테이블에서 보인 많은 overstrikes는, 호소해서, 실제로 이용되지 않는다. 새로운 overstrikes는 특정한 기계설비, 시스템 특징, 파일 시스템에 지어지는 APL의 버전을 일으키는 때 납품업자에 의해, 등등 소개되었다. 추가로, 맨끝과 이른 APL를 인쇄해서 음극선 맨끝은 임의 overstrikes 표시 가능했다, 그러나 개인용 컴퓨터로 급속하게 데이터 기재 장치, 지원이 지금으로 제공된 APL 특성으로 맨끝을 대체했다 APL 특성 발전기 ROM 또는 표시 장치에 의해 만들어지는 연약한 문자집합. 창의 출현으로, APL 특성은 삭제되는 overstruck 특성과 표준 문자 사이 다만 다른 완전한 글꼴, 따라서 구별로 정의되었다.

최신 IBM 맨끝, 주목할 만하게 IBM 3270 전시 역에는, 어떤의 현대 APL 키보드 배치를 위한 오늘 사용중인 기초인 교체 키보드 배열이 있었다. 더 나은 맨끝, 인쇄 기계 대신에 즉 표시 장치는, 생산력과 프로그램 가독성에 있는 잴 수 있는 개선이 있던 더 나은 전화면 편집자에는의 발달을 격려했다.

사용법

APL에는 오랫동안 작고 뜨거운 사용자 기초가 있었다. 그것은 해결책이 빈번하게 변화하는 표준 언어에서 과량 복합성을 열매를 산출하는 곳에 재정 보험 신청, 가장, 및 수학 신청에서 대중적, 수시로이고 아직도이고. APL는 다양한 문맥에서 그리고 많은 것 그리고 변화된 목적을 위해 사용되었다. APL에 전념한 "인용하 쿼드이라고" 표제가 붙은 회보는 계산 기계장치를 위한 협회의 SIGAPL 단면도에 의해 1970 년대부터 간행되었다 (인용하 쿼드는 원본 입출력에 사용된 APL 특성의 이름이다).

주로 그것 때문에 삽입사 표기법 그리고 컴퓨터와의 상호 작용, APL에 그것의 강조는 상호 작용하는의 급속한 배치를 위한 이상적인 환경일 수 있다 도메인별 언어. APL 문자집합에 있는 비표준 특성의 존재에도 불구하고, 낱말, 수 및 친밀한 구두점으로 유일하게 이루어져 있는 간단한 프로그램 (또는 원본을) 쓰기 위하여 APL에서 실행된 도메인별 언어의 사용자를 위해 가능하다. 1980 년대 중반 처럼 늦게까지, APL 시분할 납품업자는 도메인별 언어의 모양으로 전달된 신청을 제안했다. 에 i. P. 예리한 시분할 시스템은, 작업 공간 불렀다 39 마술 도메인별 언어의 모양으로 정교한 (시간을 위해) 도표로 나타내고, 보고 플러스 재정과 항공 자료에 제안된 접근. 또 다른 보기는 IBM의 APL2로 공급된 GRAPHPAK 작업 공간이다; APL2와 GRAPHPAK 둘 다의 논증 버전은 창을 위해 다운로드될 수 있다.

APL는 또한 수많았던에서 사용되었다 metaprogramming 신청. 때때로 변화한 주어진 외부 데이터, APL 프로그램은 부분을 구성하거나 포트란 COBOL, 또는 자바와 같은 다른 언어로 쓴 부호의 단면도를 완료하기 위하여 이용되었다. 1개의 신청은 내용이 풍부한 선형 프로그래밍 모형의 포트란 부호를 생성하기 위하여 APL를 이용했다. 등과 같은, 포트란 부호는 너무 크 안락하게 개인의 또는 작은 그룹에 의해 이해되기 에는 생각되었다. 그러나, 이 접근과 더불어, 아무 방벽도 일상적인 정비에 의하여 자세를 취하지 않았다. 유사한 접근은 강화 테이블이 필요한 강화 계산을 실행한 꽤 큰 COBOL 프로그램으로 APL의 외부를 즉시에 변형될 수 있던 유지한 곳에 사용되었다. 이전에 몇몇 인일을 요구한 지루한 단계, 긴 COBOL 프로그램에 즉 수정은, 실제적으로 삭제되었다. 결국 자바 부호를 방출한 유사한 일은 했다.

APL에 있는 관심사는 1980년대부터 꾸준하게 떨어졌다. 이것은 performant 주요골격 실시에서 이른 값이 싼 개인용 컴퓨터 대안에 이동 경로의 부족 및 높 생산력 최종 사용자 계산 공구의 가용성 때문에와 같은 부분적으로 이었다 Microsoft Excel 그리고 마이크로소프트 접근. 이들은 1970 년대 및 1980년대에 있는 주요골격 APL 신청인 일지모른는 무슨이를 위한 적합한 플래트홈이다. 몇몇 APL 사용자는에 이동했다 J 프로그램 언어, 진보된 특징을 제안하는. 마지막으로, 쇠퇴는 또한 성장에 부분적으로 부과금의이었다 MATLAB, GNU 옥타브, Scilab. 이 과학적인 계산 배열하 동쪽으로 향하게 한 플래트홈은 APL와 유사한 대화형 계산 방식 경험을 제공하고, 그러나 좀더 포트란과 같은 평범한 프로그램 언어를 닮고 표준 ASCII를 사용한다.

이 쇠퇴에도 불구하고, APL 발견은 계속했다 회계 연구와 같은 특정 분야에 있는 사용을 (스탠포드 회계 PhD 필요조건)

규격화

APL는에 의해 표준화되었다 ANSI 집단 작업 X3J10 ISO/IEC 합동 기술 위원회 1 분과위원회 22 집단 작업 3. 중핵 APL 언어는 ISO 8485:1989에서 지정되고, 장시간 APL 언어는 ISO/IEC 13751:2001에서 지정된다.

따옴표

  • "카드 한 벌을 아무도가 표준 키보드에." 나타나지 않는, 4개의 특성에 있는 몇몇 선수에게 밖으로 뒤섞고 그 후에 그들을 다루기 가상하기 위하여 당신이 프로그램을 쓸 수 있는 APL 주어지는 데비드
  • "APL는 얀벽에 완성된 과오 이다. 과거의 프로그래밍 기술을 위한 미래의 언어이다: 그것은 코딩 bums의 새로운 발생을 창조한다. " Edsger Dijkstra, 1968
Rho 의 rho, X의 rho
항상 1개를 같게 한다.
Rho는 차원이다; rho rho, 계급.
APL는 재미이다!
  • "사업의 이 방법은 연소제 같이 퍼졌다 때문에 이렇게 생산적이었다. 무슨 일이 일어났느가가 실제적인 사람들이 알아낼 그 때까지는; APL는 가능하게 뿌리째 뽑힐 수 없었다 IBM가 그것의 사업을 어떻게의 운영한지 아주 중요했다 부분. 무모한 연구원에 의하여 축재가가 생성했었다. "마이클 S. Montalbano 1982년 (보십시오 APL의 개인 병력)
  • 뒤에 오는 즐거운 각운은의 한 부분으로 회람되었다 유닉스 수많은 임명에 있는 프로그램.
'Tis 각 프로그래머의 꿈
그의 생활이 행해지기 전에,
APL의 3개의 선을 쓰기 위하여
그리고 지독한 것 뛰기를 만드십시오.

또한 보십시오

참고

  1. ^ 래리 유형 (2006년 8월). "우리가 APL \ 1130년에 얻은 방법". 벡터 (영국 APL 협회) 22 (3). ISSN 0955-1433. 
  2. ^ 당나귀, 이 의 APL 음역의 A 명부는 계획한다, 1993
  • Iverson, 케네스 E. - 프로그램 언어, 윌에이 1962년.
  • SYSTEM/360의 형식적인 묘사, IBM 체계는 3:3, 뉴욕을 일지를 쓴다: 1964
  • Pakin, Sandra - APL \ 360 참조 설명서, Science Research Associates, Inc. 1968. ISBN 0-574-16135-X,
  • 프로그램 언어의 역사, 제 14 장
  • 제랄드 진 Francis Banon - 기초 da Computacao Grafica, 리오데자네이로: CAMPUS 1989년. 141 p.

또한 보십시오

외부 연결

Wikimedia 공유지에는 과 관련있는 매체가 있다:
The original article is from Wikipedia. To view the original article please click here.
Creative Commons Licence