난해한 프로그래밍 언어: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
편집 요약 없음
태그: 되돌려진 기여
편집 요약 없음
태그: 되돌려진 기여
7번째 줄:
* 많은 수의 난해한 프로그래밍 언어들은 최소한의 요소만을 가지고도 [[튜링 완전성|튜링 완전]]한 언어를 추구한다. 여기에는 [[브레인퍽]](명령 8개, 피연산자 없음), [[OISC]](명령 1개, 피연산자 3개), [[Thue 프로그래밍 언어|Thue]](명령 1개, 피연산자 2개) 등이 속한다.
* 난해한 프로그래밍 언어들도 굳이 분류하면 여러 개의 [[프로그래밍 패러다임]]에 속할 수 있고, 이를 통해 언어가 작동하는 방법을 이해할 수 있다. 예를 들어 브레인퍽 등의 많은 언어는 자료를 어떻게 다룰지 명령으로 기술하는 [[명령형 프로그래밍|명령형]] 언어이고, [[언람다]](Unlambda)는 최소한의 요소만을 남긴 [[함수형 프로그래밍|함수형]] 언어이며, Thue 같이 변환 함수를 초기 상태에 연속적으로 적용하여 결과를 얻어 내는 언어도 있다.
* 상당수의 난해한 프로그래밍 언어는 [[비펀지]]의 영향을 받아 1차원이 아닌 자료 및 코드 영역을 사용한다. 가장 극적인 경우로 0차원 프로그래밍 언어 [[NULL (프로그래밍 언어)|NULL]]을 들 수 있는데, 여기서는 하나의 숫자가 하나의 프로그램이며 [[소인수 분해]]를 통해 명령을 생성해 낸다. <span style="color:grey"><del>특히 큰 숫자는 계산기로 소인수분해가 안되는데 그런 계산을 할 수 있는 것 자체가 흠좀무</del></span>
* 몇몇 난해한 프로그래밍 언어는 [[비결정적]]으로 동작한다. Java2K나 Thue 등의 프로그래밍 언어는 경우에 따라 같은 프로그램이 다른 결과를 내놓을 수 있는 비결정적인 언어이다.
* 가끔 프로그래밍 언어의 사용자가 이해하기 힘들도록 언어가 설계된 경우가 있다. 대표적인 예로 [[Malbolge]]가 있다.
* 일부 프로그래밍 언어는 사용자가 이것이 프로그래밍을 위한 코드임을 쉽게 알아차리지 못하게 한다. 대표적인 예로 얼핏 보면 로미오와 줄리엣이 나오는 이야기처럼 보이는 [[셰익스피어 프로그래밍 언어|셰익스피어]]가 있다. <span style="color:grey"><del>문과를 위해 만든 프로그래밍 언어인 것 같다</del></span>
 
== 같이 보기 ==