난해한 프로그래밍 언어

난해한 프로그래밍 언어(esoteric programming language, esolang)는 실생활에 사용하기 힘들 정도로 복잡하게 만들어진 프로그래밍 언어이다.

대개 실제로 사용하려는 목적이 아니라 단순 장난 또는 재미를 목적으로 설계된다.

최초의 난해한 프로그래밍 언어는 제임스 라이온스(James Lyons)와 돈 우즈(Don Woods)가 1972년에 만든 INTERCAL로 여겨지고 있다. 개발자들은 자신들이 알고 있는 언어들과 전혀 닮지 않은 언어를 의도했다고 밝혔다. 그 뒤 우어반 뮐러(Urban Müller)가 1993년브레인퍽(Brainfuck)을 발표했으며, 브레인퍽은 비펀지(Befunge)와 함께 가장 사용자가 많은 난해한 프로그래밍 언어가 되었다.

특징

난해한 프로그래밍 언어들은 다양한 방법을 동원하여 '난해함'을 추구한다.

많은 수의 난해한 프로그래밍 언어들은 최소한의 요소만을 가지고도 튜링 완전한 언어를 추구한다. 여기에는 브레인퍽(명령 8개, 피연산자 없음), OISC(명령 1개, 피연산자 3개), Thue(명령 1개, 피연산자 2개) 등이 속한다.

난해한 프로그래밍 언어들도 굳이 분류하면 여러 개의 프로그래밍 패러다임에 속할 수 있고, 이를 통해 언어가 작동하는 방법을 이해할 수 있다. 예를 들어 브레인퍽 등의 많은 언어는 자료를 어떻게 다룰지 명령으로 기술하는 명령형 언어이고, 언람다(Unlambda)는 최소한의 요소만을 남긴 함수형 언어이며, Thue 같이 변환 함수를 초기 상태에 연속적으로 적용하여 결과를 얻어 내는 언어도 있다.

대부분의 난해한 프로그래밍 언어는 비펀지의 영향을 받아 1차원이 아닌 자료 및 코드 영역을 사용한다. 가장 극적인 경우로 0차원 프로그래밍 언어 NULL을 들 수 있는데, 여기서는 하나의 숫자가 하나의 프로그램이며 소인수 분해를 통해 명령을 생성해 낸다.

일부 난해한 프로그래밍 언어는 비결정적으로 동작한다. Java2K나 Thue 등의 프로그래밍 언어는 경우에 따라 같은 프로그램이 다른 결과를 내놓을 수 있는 비결정적인 언어이다.

사용자가 이것이 프로그래밍을 위한 코드임을 쉽게 알아차리지 못하게 하는 경우도 있다. 대표적인 예로 셰익스피어가 있다.

같이 보기

외부 링크

Tags:

프로그래밍 언어

🔥 Trending searches on Wiki 한국어:

알렉산드로스 대왕엘 시드 (영화)전소니첨성대강희선이탈리아지배종일본의 행정 구역송건희나 혼자만 레벨업스캔들 (2024년 드라마)용감무쌍 용수정윤명선 (작곡가)사람홀로코스트히로시마·나가사키 원자폭탄 투하커넥션 (드라마)곽상언독일김주나파스칼 (단위)전혜원잉글랜드 축구 국가대표팀신라카자흐스탄대만김보협호랑이야구삼체 (드라마)언젠가는 슬기로울 전공의생활콜레스테롤김재규발해엔비디아마거릿 해밀턴 (과학자)전현희소련주상절리안창호TCP/UDP의 포트 목록이주빈마리 퀴리클로드 모네KBO 리그 개인 통산 최다 홈런4월 18일쿠팡김유신글루코스볼츠만 상수아스피린진나라최경용조보아K-pop박수현 (1964년)음핵메소포타미아안재현푸리에 변환더 로즈 (대한민국의 음악 그룹)포화 지방산아돌프 히틀러고양이유비대한항공로마 숫자마침표창덕궁원주율2024년 하계 올림픽수원시오재원제4차 산업혁명바이낸스동유럽수도방위사령부분산🡆 More