A+ (프로그래밍 언어)
1. 개요
A+는 1985년 아서 휘트니가 APL 언어를 대체하기 위해 개발한 프로그래밍 언어이다. 모건 스탠리의 개발자들에 의해 GUI 및 기타 기능이 추가되어 1988년에 초기 A+가 출시되었다. 확장된 함수 및 연산자 세트, GUI, 비동기 실행, 동적 로딩 등을 지원하며, 리눅스를 포함한 유닉스 변형에서 실행된다. A+는 GNU 일반 공중 사용 허가서에 따라 배포되는 자유-오픈 소스 소프트웨어이며, 금융 분야의 수치 연산 애플리케이션에 주로 사용된다.
-
APL 프로그래밍 언어 계열 -
J (프로그래밍 언어)
J는 배열 처리에 특화된 간결하고 강력한 프로그래밍 언어로, 묵시적 프로그래밍 스타일과 함수 합성을 통해 코드 간결성을 높이고 다양한 숫자형 데이터 타입과 풍부한 연산자를 제공하며 확장 정밀도 기능을 지원한다. -
APL 프로그래밍 언어 계열 -
APL (프로그래밍 언어)
APL은 케네스 아이버슨이 개발한 배열 지향 프로그래밍 언어로, 간결한 표기법과 특수 문자 집합을 사용하며, 아이버슨의 수학적 표기법에 기반하여 객체 지향 프로그래밍과 .NET 지원 등의 확장 기능을 제공한다. -
데이터 중심 프로그래밍 언어 -
마이크로소프트 액세스
마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다. -
데이터 중심 프로그래밍 언어 -
SQL
SQL은 관계형 데이터베이스 관리 시스템에서 데이터를 관리하고 조작하기 위해 설계된 표준 프로그래밍 언어로서, 데이터 정의어, 데이터 조작어, 데이터 제어어를 포함하는 다양한 명령어 문법을 제공하며 ANSI와 ISO에 의해 표준으로 채택되었다. -
배열 프로그래밍 언어 -
GNU 옥타브
GNU 옥타브는 MATLAB과 높은 호환성을 가지며 수치 해석 계산을 위해 사용되는 자유-오픈 소스 소프트웨어이다. -
배열 프로그래밍 언어 -
NumPy
NumPy는 파이썬에서 다차원 배열을 효과적으로 다루기 위한 라이브러리로, C API를 제공하여 외부 라이브러리와 연동을 지원하며, 다양한 연산 기능과 멀티스레딩을 통한 성능 향상을 제공한다.
2. 역사
1985년, 아서 휘트니는 APL을 대체할 목적으로 A 프로그래밍 언어를 개발했다. 이후 모건 스탠리의 다른 개발자들이 이 언어에 그래픽 사용자 인터페이스(GUI)와 여러 기능들을 추가하여 A+로 확장했으며, GUI를 갖춘 A+는 1988년에 출시되었다. A+는 주로 금융 분야와 같은 수치 연산 애플리케이션용으로 설계되었으며, 유닉스와 리눅스 환경에서 인터프리터 방식으로 동작하고 대화형 환경도 제공한다.
2.1. 개발 배경
1985년, 아서 휘트니는 기존의 APL 언어를 대체하기 위해 A 프로그래밍 언어를 개발했다. 이후 모건 스탠리의 다른 개발자들이 A 언어에 그래픽 사용자 인터페이스(GUI)와 여러 언어 기능들을 추가하여 A+로 확장시켰다. A+는 특히 금융 분야와 같은 수치 연산 애플리케이션을 위해 설계되었다. 그래픽 사용자 인터페이스를 갖춘 초기 A+는 1988년에 출시되었다.
개발 초기에는 XEmacs 에디터를 확장하여 사용했는데, 이는 A+가 APL에서 사용된 고유 기호들을 유사하게 사용하기 때문에 이러한 기호들의 입력과 표시가 가능한 환경이 필요했기 때문이다. XEmacs는 그래픽 환경에서 다중 문자를 지원하는 시스템을 갖추고 있었다. 관련 폰트인 "kapl"은 웹사이트에서 제공된다.
2.2. K 언어와의 관계
A 프로그래밍 언어를 개발한 아서 휘트니(컴퓨터 과학자)는 이후 K라는 독점 배열 언어를 만들었다. J와 마찬가지로, K는 APL 문자 집합을 사용하지 않는다. 또한, K는 문장(文)의 존재 및 두 가지 다른 구문 모드와 같이 A+의 복잡성으로 여겨지는 일부 기능을 가지고 있지 않다.
3. 특징
A+는 APL을 기반으로 확장된 배열 프로그래밍 언어로, 1988년 모건 스탠리에서 아서 휘트니(Arthur Whitney)를 중심으로 금융 분야의 수치 연산 애플리케이션 개발을 위해 만들어졌다. 이 언어는 APL의 개념을 확장하여 개선된 함수 및 연산자, 그래픽 사용자 인터페이스(GUI) 지원, 비동기 실행, 동적 로딩과 같은 현대적인 기능들을 포함하는 것이 특징이다. APL과의 구체적인 차이점과 상세 기능은 하위 섹션에서 다루어진다.
A+는 리눅스를 포함한 다양한 유닉스 계열 운영체제에서 구동되며, GNU 일반 공중 사용 허가서에 따라 배포되는 자유-오픈 소스 소프트웨어이다. 인터프리터 방식으로 작동하며 대화형 개발 환경을 제공한다. 개발에는 주로 XEmacs 편집기가 확장 기능과 함께 사용되며, APL과 유사한 특수 기호를 표시하기 위해 'kapl'이라는 전용 폰트가 필요하다.
3.1. APL과의 차이점
A+ 언어는 APL 언어에 다음과 같은 변경 사항을 구현한다.
* A+ 함수는 최대 9개의 매개변수를 가질 수 있다.
* A+ 코드 문장은 세미콜론(;)으로 구분되며, 이를 통해 하나의 문장을 여러 줄에 나누어 작성하는 것이 가능하다.
* 함수 또는 연산자의 명시적 결과는 마지막으로 실행된 문장의 결과가 된다.
* A+는 종속성(dependency) 객체를 구현한다. 이는 전역 변수(종속 변수)와 인수가 없는 함수와 같은 관련 정의를 포함한다. 값은 전역 변수처럼 명시적으로 설정하고 참조할 수 있을 뿐만 아니라, 관련 정의를 통해서도 설정될 수 있다.
3.2. 기능
A+는 확장된 함수 및 연산자 세트를 제공하며, 위젯과 변수의 자동 동기화를 지원하는 그래픽 사용자 인터페이스(GUI)를 갖추고 있다. 또한, 변수 및 이벤트와 관련된 함수의 비동기 실행, 사용자가 컴파일한 서브루틴의 동적 로딩 등의 기능을 지원한다. A+는 리눅스를 포함한 여러 유닉스 계열 운영체제에서 실행될 수 있으며, GNU 일반 공중 사용 허가서에 따라 배포되는 자유-오픈 소스 소프트웨어이다. 다만, 새로운 GUI는 아직 모든 지원 플랫폼으로 이식되지는 않았다.
A+ 언어는 기존의 APL 언어와 비교하여 다음과 같은 주요 변경 사항 및 특징을 가진다.
| 특징 | APL | A+ |
|---|---|---|
| 함수 매개변수 | (언급 없음) | 최대 9개까지 허용 |
| 코드 문 구분 | 줄 바꿈 | 세미콜론(;)으로 구분 (한 문장을 여러 줄에 걸쳐 작성 가능) |
| 함수/연산자 결과 | (언급 없음) | 마지막으로 실행된 문의 결과가 명시적 결과가 됨 |
| 추가 개념 | (언급 없음) | 종속성(Dependency) 객체 구현 (전역 변수와 관련 정의(인수 없는 함수 등)를 연결하여, 변수 값 변경 시 관련 정의가 함께 갱신될 수 있음) |
대화형 A+ 개발은 주로 편집기 확장을 통해 Xemacs 편집기에서 수행된다. A+ 코드는 APL에서 사용된 고유한 기호를 사용하므로, 이를 올바르게 표시하기 위해서는 해당 기호를 포함하는 특수 글꼴이 필요하다. 이를 위해 'kapl'이라는 글꼴이 공식 웹사이트를 통해 제공된다. A+는 인터프리터 방식으로 구현되어 있으며, 대화형 개발 환경도 지원한다.
4. 개발 환경
A+는 인터프리터 방식으로 구현되었으며, 대화형 개발 환경을 제공한다.