앨리스(프로그래밍 언어)

Alice (programming language)
앨리스야.
패러다임멀티패러다임: 필수, 기능, 분산,분산,동시
설계자손랜드 대학교
처음 등장한2000년, 22년(2000년)
안정된 릴리스
1.4 / 2007년 5월 3일, 15년 전(2007-05-03)
타이핑 분야strong, static, 추론
OS크로스 플랫폼
면허증.MIT
웹 사이트www.ps.uni-saarland.de/alice[1]
영향을 받다
ML, Oz

Alice ML은 독일 자르브뤼켄자르란트 대학의 프로그래밍 시스템 연구소에서[2] 설계한 프로그래밍 언어입니다.표준 ML방언으로, 느린 평가, 동시성(멀티스레딩원격 프로시저 호출을 통한 분산 컴퓨팅) 및 제약 프로그래밍지원합니다.

개요

Alice는 이전 버전과 구별되는 여러 가지 방법으로 표준 ML을 확장합니다.Alice는 독립된 실행 스레드에 의해 제공되는 값을 나타내는 미래 유형을 사용하여 기본 언어의 일부로 동시성 기능을 제공합니다.미래 값을 사용하는 스레드는 값을 수행하는 스레드가 계산을 완료할 때까지 값에 액세스하려는 시도를 차단합니다.관련 개념은 약속이라고도 하며, 이를 통해 스레드가 다른 스레드에 계산할 미래 가치를 제공할 수 있습니다.미래형 변수와 약속형 변수를 사용하여 데이터 흐름 동기화를 구현합니다.

하스켈 함수 언어와 마찬가지로 앨리스도 프로그램에서 게으른 평가 전략을 허용하는 기능을 제공합니다. 하스켈은 기본적으로 게으른 모델을 사용하는 반면, 앨리스는 게으른 평가 모델을 사용합니다.따라서 라질을 평가하기 위한 계산에 명시적인 프로그래밍 문장이 필요합니다.y.

Sarland University의 Alice 구현에서는 Simple Extensible Abstract Machine(SEAM) 가상 머신을 사용합니다.무료 소프트웨어이며 x86 아키텍처용 바이트 코드네이티브 코드에 대한 저스트 인 타임 컴파일 기능을 갖추고 있습니다.

Alice의 초기 버전은 Mozart Programming System(Oz) 가상 머신(VM)에서 실행되어 Alice와 Oz 코드 간의 인터페이스를 가능하게 했습니다.

Alice의 원격 프로시저 호출은 한 컴퓨터에서 다른 컴퓨터로 계산할 코드를 보낼 수 있기 때문에 가상 시스템에 따라 달라집니다.

Alice는 느린 평가와 동시성을 위해 표준 ML을 몇 가지 원소와 함께 확장합니다.예를 들어, 스레드는 다음과 같이 작성할 수 있습니다.spawn 키워드를 지정합니다.피보나치 수치를 계산하는 순진한 알고리즘에 대해 생각해 봅시다.

 재밌어요 파이브 0 = 0      파이브 1 = 1      파이브 n = 파이브(n-1) + 파이브(n-2); 

큰 값의 경우n,fib n계산하는데 오랜 시간이 걸립니다.이 계산은 다음과 같이 별도의 스레드에서 수행할 수 있습니다.

  x = 낳다 파이브 n; 

변수x이른바 미래로 묶여 있습니다.작업에 다음 값이 필요한 경우x스레드가 계산을 완료할 때까지 차단합니다.병렬화를 이용하려면 다음과 같이 fib를 정의할 수도 있습니다.

 재밌어요 파이브 0 = 0      파이브 1 = 1      파이브 n = 낳다 파이브(n-1) + 파이브(n-2); 

「 」를 참조해 주세요.

레퍼런스

  1. ^ Alice, DE: University of Saarland
  2. ^ "Programming Systems Lab". Archived from the original on 2006-10-05. Retrieved 2006-08-08.

외부 링크