맨위로가기

림보 (프로그래밍 언어)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

림보(Limbo)는 모듈 프로그래밍, 병렬 프로그래밍, 강력한 형 검사, 형식화된 채널을 통한 프로세스 간 통신, 자동 가비지 컬렉션, 단순 추상 자료형 등을 지원하는 프로그래밍 언어이다. 림보 코드는 Dis 가상 머신에서 실행되며, BeBox에서 사용된 AT&T 호빗 마이크로프로세서의 영향을 받았다.

더 읽어볼만한 페이지

  • 가상 머신 - V8 (자바스크립트 엔진)
    V8은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 자바스크립트 코드 실행 속도 향상을 위해 여러 컴파일러를 거쳐 크롬, 노드.js 등에서 활용된다.
  • 가상 머신 - X86 가상화
    X86 가상화는 x86 아키텍처 기반 시스템에서 가상 머신을 구현하는 기술로, 소프트웨어 기반 가상화와 하드웨어 지원 가상화로 나뉘며, CPU 제조사의 가상화 확장 기술을 활용하여 가상 머신의 성능을 향상시킨다.
  • 병행 프로그래밍 언어 - 자바 (프로그래밍 언어)
    자바는 제임스 고슬링 등에 의해 개발된 객체 지향 프로그래밍 언어로, 다양한 플랫폼에서 실행 가능하며 샌드박스 모델 기반의 보안 기능, 자동 메모리 관리, 멀티스레딩 등을 지원한다.
  • 병행 프로그래밍 언어 - 스칼라 (프로그래밍 언어)
    스칼라는 마틴 오더스키가 설계한 객체 지향 및 함수형 프로그래밍 언어이며, 자바 플랫폼에서 실행되고 자바 코드와 상호 운용이 가능하며, 아파치 스파크 등 다양한 곳에서 활용된다.
  • C 프로그래밍 언어 계열 - C (프로그래밍 언어)
    C는 하드웨어 제어와 이식성이 뛰어난 고급 절차적 프로그래밍 언어로서, 다양한 분야에서 사용되며 후속 언어에 영향을 주었고, 성능과 효율성이 높지만 안전성 문제 개선이 필요한 언어이다.
  • C 프로그래밍 언어 계열 -
    펄은 래리 월이 개발한 텍스트 조작에 강점을 가진 다목적 프로그래밍 언어이며, 1987년 펄 1.0이 처음 공개된 이후 여러 버전 업데이트를 거쳐 객체 지향 프로그래밍과 유니코드 지원 기능을 추가했고, 현재 펄 5가 널리 사용되며 CPAN을 통해 방대한 모듈 생태계를 제공한다.
림보 (프로그래밍 언어) - [IT 관련 정보]에 관한 문서
기본 정보
이름Limbo
패러다임병행
등장 시기1995년
설계자션 도워드(Sean Dorward), 필 윈터바텀(Phil Winterbottom), 롭 파이크
개발자벨 연구소 / 비타 누오바 홀딩스
자료형스트롱
구현체디스 가상 머신
영향을 받은 언어C
Pascal
CSP
Alef
Newsqueak
영향을 준 언어Stackless Python
Go
Rust
운영 체제Inferno
라이선스GNU GPL v2, limbo 하위 폴더의 NOTICE 참조
웹사이트Inferno Application Programming

2. 언어 기능

림보는 모듈식 프로그래밍, 병행 프로그래밍, 강력한 자료형 검사, 프로세스 간 통신, 자동 쓰레기 수집, 단순 추상 자료형을 지원한다.[1]

2. 1. 모듈식 프로그래밍

림보는 모듈식 프로그래밍을 지원한다.[1]

2. 2. 병행 프로그래밍

림보는 병행 프로그래밍을 지원하여 다중 코어 프로세서 환경에서 성능을 극대화할 수 있다.[1] 림보는 동시 프로그래밍, 형식화된 채널을 통한 프로세스 간 통신 기능을 제공한다.[1]

2. 3. 자료형 검사

림보는 컴파일 및 런타임 시에 강력한 자료형 검사를 수행하여 오류를 줄이고 프로그램의 안정성을 높인다.

2. 4. 프로세스 간 통신

림보는 타입이 지정된 채널을 통해 프로세스 간 통신을 지원한다.[1] 이는 분산 시스템 개발을 용이하게 한다.

2. 5. 자동 쓰레기 수집

림보는 자동 쓰레기 수집 기능을 제공한다.[1]

2. 6. 추상 자료형

림보는 단순 추상 자료형을 지원한다.[1]

3. 가상 머신

림보 코드는 Dis 가상 머신에서 실행되며, 산술 연산, 제어 흐름, 데이터 이동, 프로세스 생성, 프로세스 간의 동기화 및 통신, 코드 모듈 로딩, 그리고 문자열, 배열, 리스트, 통신 채널과 같은 더 높은 수준의 데이터 타입을 위한 명령어를 가진 CISC와 유사한 VM이다.[2] 이 가상 머신은 순환 데이터를 위해 참조 카운팅과 실시간 가비지 컬렉션의 하이브리드 방식을 사용한다.[3]

Dis 설계는 원래 BeBox에서 사용된 AT&T 호빗 마이크로프로세서의 영향을 받았다.

4. 예시

림보는 에이다 스타일의 정의를 사용한다.

```limbo

name := type value;

name0,name1 : type = value;

name2,name3 : type;

name2 = value;

```

4. 1. Hello world

limbo

implement Command;

include "sys.m";

sys: Sys;

include "draw.m";

include "sh.m";

init(nil: ref Draw->Context, nil: list of string)

{

sys = load Sys Sys->PATH;

sys->print("Hello World!\n");

}

5. 관련 서적

필립 스탠리-마벨의 저서 ''Inferno Programming with Limbo''(치체스터: 존 와일리 & 선스, 2003)에는 Inferno 운영체제와 림보 프로그래밍 언어의 3판이 설명되어 있다. 마틴 앳킨스, 찰스 포사이스, 롭 파이크, 하워드 트리키가 저술한 ''The Inferno Programming Book: An Introduction to Programming for the Inferno Distributed System''은 출판되지 않았다.

참조

[1] 웹사이트 Inferno Application Programming http://www.vitanuova[...] vitanuova 2021-01-26
[2] 웹사이트 Dis Virtual Machine Specification http://www.vitanuova[...] Vita Nuova 2015-02-02
[3] 간행물 Very Concurrent Mark and Sweep Garbage Collection without Fine-Grain Synchronization http://doc.cat-v.org[...]
[4] 웹인용 Inferno Application Programming http://www.vitanuova[...] vitanuova 2021-01-26



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com