ABC (프로그래밍 언어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
ABC는 1980년대 초에 개발된 프로그래밍 언어이다. 파스칼이나 C 언어 프로그램보다 간결하고 가독성이 높도록 설계되었으며, 5개의 기본 자료형, 변수 선언 불필요, 하향식 프로그래밍 지원, 들여쓰기를 통한 코드 블록 구분, 무한 정밀 연산 및 자료 구조 등의 특징을 가진다. ABC는 인터프리터-컴파일러 환경을 제공하며, 유닉스, DOS, 아타리, macOS 등 다양한 운영 체제에서 사용할 수 있다. ABC는 파이썬 설계에 큰 영향을 미쳤다.
더 읽어볼만한 페이지
- 교육용 프로그래밍 언어 - 하스켈
하스켈은 해스켈 커리의 이름을 딴 순수 함수형 프로그래밍 언어로, 여러 함수형 언어 통합 노력의 결과로 탄생하여 느긋한 계산법, 패턴 매칭, 타입 클래스, 모나드 등의 특징을 가지며 GHC가 표준 구현체로 사용된다. - 교육용 프로그래밍 언어 - 파이썬
파이썬은 귀도 반 로섬이 개발한 객체 지향적 프로그래밍 언어이며, 간결한 문법과 다양한 라이브러리를 통해 웹 개발, 과학 계산, 인공지능 등 다양한 분야에서 활용된다. - 절차적 프로그래밍 언어 - C (프로그래밍 언어)
C는 하드웨어 제어와 이식성이 뛰어난 고급 절차적 프로그래밍 언어로서, 다양한 분야에서 사용되며 후속 언어에 영향을 주었고, 성능과 효율성이 높지만 안전성 문제 개선이 필요한 언어이다. - 절차적 프로그래밍 언어 - 펄
펄은 래리 월이 개발한 텍스트 조작에 강점을 가진 다목적 프로그래밍 언어이며, 1987년 펄 1.0이 처음 공개된 이후 여러 버전 업데이트를 거쳐 객체 지향 프로그래밍과 유니코드 지원 기능을 추가했고, 현재 펄 5가 널리 사용되며 CPAN을 통해 방대한 모듈 생태계를 제공한다.
ABC (프로그래밍 언어) - [IT 관련 정보]에 관한 문서 | |
---|---|
개요 | |
이름 | ABC |
종류 | 프로그래밍 언어 |
패러다임 | 다중 패러다임 프로그래밍: 명령형 프로그래밍, 절차적 프로그래밍, 구조적 프로그래밍 |
설계자 | 레오 Geurts, Lambert Meertens, Steven Pemberton |
개발자 | CWI |
최초 출시일 | 1987년 1월 |
최신 버전 출시일 | 1990년 |
타이핑 | 강한, 다형적 |
구현체 | 해당 사항 없음 |
운영 체제 | 유닉스 계열, 윈도우, macOS, 아타리 TOS |
방언 | 해당 사항 없음 |
영향을 받은 언어 | SETL, ALGOL 68 |
영향을 준 언어 | 파이썬 |
2. 특징
ABC 컴퓨터 프로그램은 설계자들이 주장하기를, 일반적으로 파스칼 또는 C 프로그램의 4분의 1 정도 크기이며 더 읽기 쉽다고 한다.[5]
ABC는 다음과 같은 주요 기능을 가지고 있다.
- 다형성 명령 및 함수
- 명령 완성, 지속적인 작업 공간, 별도의 파일 처리가 없는 대화형 환경
ABC는 원래 모놀리식 구현이었기 때문에, 그래픽 사용자 인터페이스(GUI) 생성과 같은 새로운 요구 사항에 적응할 수 없었다. 또한 ABC는 기본 파일 시스템 및 운영 체제에 직접 접근할 수 없었다.
전체 ABC 시스템에는 구조 편집기(구문 지향 편집기), 제안, 정적 변수(영구적) 및 여러 작업 공간이 있는 프로그래밍 환경이 포함되어 있으며, 인터프리터–컴파일러로 사용할 수 있다. 2020년 기준으로 최신 버전은 1.05.02이며, 유닉스, DOS, 아타리, macOS로 이식되었다.
2. 1. 간결성 및 가독성
ABC는 파스칼이나 C 프로그램보다 훨씬 간결하고 가독성이 높다. 설계자들에 따르면, ABC 코드는 일반적으로 동일한 기능을 하는 파스칼 또는 C 프로그램의 약 1/4 크기이다.[5]2. 2. 단순한 자료형
ABC는 단 5개의 기본 자료형만을 제공한다.[5] 변수 선언은 필요하지 않다. 자료형에는 제한이 거의 없어 임의 정밀도 정수뿐만 아니라 무한 길이의 리스트나 무한 길이의 문자열도 사용할 수 있어 초보자도 다루기 쉽다.2. 3. 변수 선언 불필요
ABC 컴퓨터 프로그램은 변수 선언이 필요 없어 프로그래밍 과정을 간소화하고 초보자가 더 쉽게 접근할 수 있도록 한다.[5] 5가지의 자료형을 지원하며, 하향식 프로그래밍을 명확하게 지원한다. 블록의 계층(중첩)은 들여쓰기로 표시된다. 초보자도 다루기 쉽도록 자료형의 제한이 적어, 임의 정밀도 정수뿐만 아니라 무한 길이의 리스트나 무한 길이의 문자열도 사용할 수 있다.2. 4. 하향식 프로그래밍 지원
ABC는 하향식 프로그래밍을 명확하게 지원하여[5] 프로그램 구조를 체계적으로 구성할 수 있도록 돕는다.2. 5. 들여쓰기를 통한 코드 블록 구분
문장 중첩은 들여쓰기를 통해 오프사이드 규칙으로 표시된다.[5]2. 6. 무한 정밀 연산 및 자료 구조
ABC는 무한 정밀 산술(Arbitrary-precision arithmetic)을 지원하여 매우 큰 정수도 정확하게 계산할 수 있다. 예를 들어, 2의 1000제곱과 같이 매우 큰 수도 쉽게 계산할 수 있다.[5]```
>>> WRITE 2**1000
107150860718626732094842504906000181056140481170553360744375038837
035105112493612249319837881569585812759467291755314682518714528569
231404359845775746985748039345677748242309854210746050623711418779
541821530464749835819412673987675591655439460770629145711964776865
42167660429831652624386837205668069376
```
ABC는 무제한 크기의 리스트와 문자열을 지원하여, 사용자가 데이터 크기에 대한 제약 없이 프로그래밍할 수 있도록 돕는다.[5]
2. 7. 기타 특징
ABC 컴퓨터 프로그램은 파스칼 또는 C 프로그램보다 보통 4분의 1 정도 크기이며, 설계자들은 더 읽기 쉽다고 주장한다.[5] 주요 기능은 다음과 같다.- 단 5개의 기본 자료형
- 변수 선언 불필요
- 하향식 프로그래밍에 대한 명시적 지원
- 문장 중첩은 들여쓰기를 통한 오프사이드 규칙으로 표시
- 무한 정밀 산술, 무제한 크기의 리스트 및 문자열, 초보자의 사용 편의성과 직교성을 지원하는 기타 기능
- 다형성 명령 및 함수
- 명령 완성, 지속적인 작업 공간, 별도의 파일 처리가 없는 대화형 환경
ABC는 원래 모놀리식 구현이었기 때문에, 그래픽 사용자 인터페이스(GUI) 생성과 같은 새로운 요구 사항에 적응할 수 없었다. 또한 ABC는 기본 파일 시스템 및 운영 체제에 직접 접근할 수 없었다.
전체 ABC 시스템에는 구조 편집기(구문 지향 편집기), 제안, 정적 변수(영구적) 및 여러 작업 공간이 있는 프로그래밍 환경이 포함되어 있으며, 인터프리터–컴파일러로 사용할 수 있다. 2020년 기준으로 최신 버전은 1.05.02이며, 유닉스, DOS, 아타리, macOS로 이식되었다.
2. 8. 한계
ABC는 원래 모놀리식 구현이었기 때문에, 그래픽 사용자 인터페이스(GUI) 생성과 같은 새로운 요구 사항에 적응할 수 없었다. ABC는 기본 파일 시스템 및 운영 체제에 직접 접근할 수 없었다.[5]3. 구현
ABC는 여러 차례 개선을 거쳐 개발되었으며, 현재(2020년 기준) 최신 버전은 1.05.02이다. 유닉스 계열 시스템, MS-DOS/윈도우, 매킨토시 등 다양한 플랫폼에서 사용할 수 있다. 1980년대 후반과 1990년대 초반에는 유즈넷을 통해 소스 코드가 제공되었다.[5] 원래 ABC는 모놀리식 구현이었기 때문에, 그래픽 사용자 인터페이스 생성과 같은 새로운 요구에 대응하기 어려웠고, 운영 체제나 파일 시스템에 직접 접근할 수 없었다.
3. 1. 프로그래밍 환경
ABC는 전용 프로그래밍 환경을 제공하며, 다음 기능을 포함하고 있다.- 구조 편집기 (구문 지향 편집기)
- 제안
- 정적 변수 (영구적)
- 여러 작업 공간
ABC는 인터프리터–컴파일러로 사용할 수 있다. 최신 버전은 1.05.02이며 유닉스, DOS, 아타리, 그리고 애플 macOS로 이식되었다.[5]
4. 프로그램 예
ABC는 무한정밀도 연산을 지원한다.[6] 다음은 2의 1000제곱을 계산하는 예시이다.
```
>>> WRITE 2**1000
107150860718626732094842504906000181056140481170553360744375038837
035105112493612249319837881569585812759467291755314682518714528569
231404359845775746985748039345677748242309854210746050623711418779
541821530464749835819412673987675591655439460770629145711964776865
42167660429831652624386837205668069376
```
다음은 문서 내 모든 단어를 중복 없이 추출하는 `words` 함수의 예시이다.[6]
```
HOW TO RETURN words document:
PUT {} IN collection
FOR line IN document:
FOR word IN split line:
IF word not.in collection:
INSERT word IN collection
RETURN collection
```
위 코드는 다음과 같이 작동한다.
1. 빈 집합 `collection`을 만든다.
2. 문서의 각 줄(`line`)을 순회한다.
3. 각 줄을 단어(`word`)로 분리하고, 각 단어를 순회한다.
4. 만약 해당 단어가 `collection`에 없다면, `collection`에 단어를 추가한다.
5. 최종적으로 `collection`을 반환한다.
5. 파이썬에 미친 영향
ABC는 파이썬 설계에 큰 영향을 주었다. 파이썬을 개발한 귀도 반 로섬은 1980년대 초 ABC 시스템 개발에 수년간 참여했다.[1]
참조
[1]
서적
Masterminds of Programming: Conversations with the Creators of Major Programming Languages
https://books.google[...]
O'Reilly Media
2009-04
[2]
간행물
An Alternative Simple Language and Environment for PCs
1987-01
[3]
간행물
The A-Z of Programming Languages: Python
http://www.computerw[...]
IDG Communications
2020-09-04
[4]
웹사이트
An Interview with Guido van Rossum
http://www.onlamp.co[...]
O’Reilly Media
2020-09-04
[5]
웹사이트
The ABC Programming Language: a short introduction
https://homepages.cw[...]
2020-09-04
[6]
문서
ABC
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com