비펀지

덤프버전 :


1. 개요
2. 특징
3. 문법


1. 개요[편집]


Befunge

스택 기반의 난해한 프로그래밍 언어.

1993년 크리스 프레시가 개발한 난해한 프로그래밍 언어. 이쪽 계열 가운데에서 인지도로는 동년배인 브레인퍽과 함께 손꼽히는 언어이다.[1] 제작자가 할 수 있는 한 컴파일이 어려운 프로그래밍 언어를 고안하려는 시도로 만든 본격 사용자 엿먹이는 언어.


2. 특징[편집]


프로그램이 2차원 공간 상에 배열되어 있는 것이 특징으로,
vv  <      <
2
^  v<
v1<?>3v4
^   ^
>  >?>  ?>5^
v   v
v9<?>7v6
v  v<
8
.  >  >   ^
^<

대략 이따위이런 식으로 코딩한다(...).

기본적으로 "화살표" 명령을 사용해서 명령의 흐름을 이리저리 조종하는데, 이에 따라 명령 포인터가 이리갔다 저리갔다 함으로써 프로그램이 동작하게 된다. 자기 수정 프로그램을 만들 수 있도록 설계되고 g와 p 명령을 제공하였다. 그랬음에도 몇몇 능력자들은 결국 컴파일러를 만들기에 성공하는 쾌거(?)를 이룩해냈다. 구현체 가운데 하나로 Befunge-93가 있다.


3. 문법[편집]


출처
문법
설명
0 ~ 9
해당 수를 넣는다.
+
a, b를 꺼내 a + b의 값을 넣는다.
-
a, b를 꺼내 b - a의 값을 넣는다.
*
a, b를 꺼내 a * b의 값을 넣는다.
/
a, b를 꺼내 b ÷ a의 몫을 넣는다.
만약 먼저 나온 수가 0이면 연산 결과를 사용자가 직접 입력하여 넣는다.
%
a, b를 꺼내 뒤에 b ÷ a 의 나머지를 넣는다.
만약 먼저 나온 수가 0이면 연산 결과를 사용자가 직접 입력하여 넣는다.
!
꺼낸 수가 0이면 1, 아니면 0을 넣는다.
`
a, b를 꺼내 b > a면 1, 아니면 0을 넣는다.

명령 포인터를 오른쪽으로 이동하게 한다.
<
명령 포인터를 왼쪽으로 이동하게 한다.
^
명령 포인터를 위로 이동하게 한다.
v
명령 포인터를 아래로 이동하게 한다.
?
명령 포인터를 랜덤한 방향으로 이동하게 한다.
_
꺼낸 숫자가 0이면 명령 포인터를 오른쪽, 아니면 왼쪽으로 이동하게 한다.
|
꺼낸 숫자가 0이면 명령 포인터를 아래, 아니면 위로 이동하게 한다.
"
다음 ' " '가 등장할 때까지 문자를 넣는다.
:
스택의 가장 위의 값을 복사해 넣는다.
\
스택의 가장 위의 두 값의 위치를 서로 바꾼다.
$
스택에서 숫자를 꺼낸다.
.
숫자를 꺼내 출력한다.
,
숫자를 꺼내 ASCII 문자를 출력한다.
#
다음 명령을 건너 뛴다.
g
y, x를 꺼내 명령의 (x, y)위치에 있는 문자의 ASCII값을 넣는다.
p
y, x, v를 꺼내 명령의 (x, y)위치에 있는 문자를 v에 해당하는 ASCII 문자로 바꾼다.
&
숫자를 입력받아 넣는다.
~
문자를 입력받아 넣는다.
@
프로그램을 종료한다.
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-01 21:51:59에 나무위키 비펀지 문서에서 가져왔습니다.

[1] 아예 이 둘을 합친 PATH라는 esolang도 있다.