연결 프로그래밍 언어

Concatenative programming language

연결형 프로그래밍 언어는 포인트 프리 컴퓨터 프로그래밍 언어이며, 여기서 모든 식은 함수를 나타내며, 병치함수 [1]구성을 나타냅니다.연결 프로그래밍은 다른 프로그래밍 스타일에서 흔히 볼 수 있는 함수 애플리케이션서브루틴을 구축하는 기본 방법인 함수 구성으로 대체합니다.

예를 들어 다음과 같은 적용 가능한 언어로 일련의 작업을 수행할 수 있습니다.

y = 후우(x) z = 막대기(y) w = 바즈(z) 

...는 일련의 [2]함수로 연결 언어로 작성됩니다.

x foo bar baz

연결 스타일로 작성된 함수 및 프로시저는 값 수준이 아닙니다. 즉, 일반적으로 명시적인 이름 또는 식별자로 작업하는 데이터 구조를 나타내지 않습니다.대신 기능 수준입니다. 함수는 파이프라인 또는 모든 함수가 동작하는 암묵적인 데이터 구조에서 매개변수를 가져와 다음 운영자가 [3]사용할 수 있도록 함수의 결과를 공유 구조로 되돌리는 일련의 작업으로 정의됩니다.

이러한 의미론을 반영하는 구문구성 의미론의 조합은 연결 언어를 프로그램의 [4]대수적 조작에 매우 쉽게 적응하게 만든다. 비록 [5]수학 표현을 직접 쓰는 것은 어려울 수 있다.연결 언어는 스택 머신으로 효율적으로 구현할 수 있으며 일반적으로 명령 [5]집합의 형태로 가상 머신에 암묵적으로 존재합니다.

특성.

연결 언어의 속성은 구성 구문과 의미론의 결과입니다.

  • 표현식의 축소는 한 함수를 다른 함수로 단순화하는 것으로, [6]객체에 함수를 적용할 필요가 없습니다.
  • 모든 하위 표현식을 동일한 하위 표현식을 나타내는 이름으로 바꿀 수 있습니다.이것은 연결 커뮤니티에서 팩터링이라고 불리며 프로그램을 더 작은 부분으로 단순화하기 위해 광범위하게 사용됩니다.
  • 연결 언어의 구문과 의미론은 모노이드[7]대수 구조를 형성한다.
  • 연결 언어는 가비지가 [8]생성되지 않는 선형 로직에서 영감을 받은 구현에 적합하게 만들 수 있습니다.

실장

최초의 연결 프로그래밍 언어는 Fourth였지만, 조이는 스스로를 연결 언어라고 부른 최초의 언어였다.기타 연결 언어로는 dc, Factor, Onyx, PostScriptRPL있습니다.

기존 연결 언어는 대부분 스택 기반입니다. 이는 요건이 아니며 다른 모델이 [9][10][11]제안되었습니다.연결 언어는 현재 임베디드, 데스크톱 및 웹 프로그래밍, 대상 언어연구 목적으로 사용되고 있습니다.

대부분의 연결 언어는 동적으로 입력됩니다.예외는 정적으로 입력된 Cat [12]언어입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Christopher Diggins: What is a concatenative language". Drdobbs.com. 2008-12-31. Retrieved 2013-07-01.
  2. ^ "Name code not values". Concatenative.org. Retrieved 13 September 2013.
  3. ^ "Concatenative language". Concatenative.org. Retrieved 13 September 2013.
  4. ^ "Rationale for Joy, a functional language". Archived from the original on 2011-01-15.
  5. ^ a b "Why Concatenative Programming Matters". Retrieved 13 September 2013.
  6. ^ "von Thun, Manfred: Joy compared with other functional languages". Archived from the original on 2011-10-06.
  7. ^ "von Thun, Manfred: Mathematical foundations of Joy". Archived from the original on 2010-07-31.
  8. ^ "Henry Baker: Linear Logic and Permutation Stacks — The Forth Shall Be First". Home.pipeline.com. Archived from the original on 2014-07-24. Retrieved 2013-07-01.
  9. ^ "The Concatenative Language XY". Nsl.com. Retrieved 2013-07-01.
  10. ^ "The Enchilada Programming Language". Enchiladacode.nl. Retrieved 2013-07-01.
  11. ^ "The Om Programming Language". Om-language.org. Retrieved 2013-07-01.
  12. ^ "Cat Specification". Cat-language.com. Archived from the original on 2015-02-05. Retrieved 2013-07-01.

외부 링크