나는 FORTH에 대해 조금 알고 있으므로 그것에 국한 할 것입니다. 저수준 언어이므로 프로그래머가 모든 하드웨어 리소스에 액세스 할 수 있습니다. 그래서 당신은 당신이 원하는대로 할 수 있습니다.
동시성
병렬 프로그램 (편집 : 실제 동시 프로그램을 말하는 데 사용)을 갖기 위해서는 적어도 두 개의 실행 장치 (CPU-s)가 필요합니다. 예를 들어 "이 두 개의 인수를 사용하여 프로세서 2에서이 단어를 실행하십시오"라는 단어를 FORTH로 구현하는 것은 사소한 일입니다. 워드는 프로세서 2에 필요한 두 개의 스택을 할당하고 워드를 실행하기 시작합니다. 해당 프로그램에서 사용할 수있는 구문을 정확히 제한해야합니다.
동시 프로그램 수가 실행 단위 수보다 많으면 "의사 병렬"프로그램을 사용하게됩니다. 기본적으로 두 가지 방법이 있습니다 : 코 루틴 또는 선점 형 멀티 태스킹. 어쨌든 이것을 달성하는 방법은 가능하지만 (쉽지 않지만 문헌에 잘 설명되어 있음) FORTH를 사용하면 필요한 모든 저수준 항목에 액세스 할 수 있습니다.
게으른 평가
물론 모든 프로그래밍 언어 에서처럼 FORTH 에서이 작업을 수행 할 수 있습니다. Haskell처럼 우아하거나 "내장 된"것은 아닙니다. 나는 매우 순진한 예를 사용할 것입니다.
아이디어는 일련의 항목을 리턴하는 "함수"(여기서 느슨하게 사용됨)를 정의하는 것입니다. 예를 들어 모든 정수를 반환하는 함수가 있습니다. 그런 다음이 세트에서 작업을 수행하고 완료되면 결과를 제공합니다. 예를 들어, 합계가 1000보다 클 때까지 모든 정수의 합계를 계산할 수 있습니다. 지연이없는 평가는 먼저 모든 정수를 세트로 할당합니다. 이는 무한한 정수가 있으므로 불가능합니다. 그런 다음이 세트에서 작업을 시작합니다. 게으른 구현에는 "세트의 다음 값을 제공"하는 방법이 있습니다. 이 작업을 수행하려면 "마지막 값 제공"기능에 변수가 하나만 필요합니다.
하스켈은 이런 식으로 일을합니다. 물론 더 복잡한 상황을 처리하지만 아이디어는 동일합니다. 프로그래머가 문제를 해결하는 방법이 아니라 문제에 집중할 수 있도록 평가합니다.