맨위로가기

ABC (프로그래밍 언어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의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