림보 (프로그래밍 언어)
"오늘의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
limboimplement 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