메타 문법 변수
메타 문법 변수 (메타신택틱 변수, metasyntactic variable)는 컴퓨터 과학, 특히 컴퓨터 프로그래밍에서 견본용 이름으로 사용되는 특정 단어들을 이르는 말이다. 한국에서 익명의 대상을 지칭할 때 사용하는 갑, 을, 병, 정... 과 유사한데, 다만 메타 문법 변수들은 주로 프로그램 소스 코드를 작성할 때 추후 구체적인 이름으로 변경될 것을 상정하고 사용된다는 점에서 용도 차이가 있다. foo 와 bar라는 단어가 대표적인 예제로서, 다수의 인터넷 엔지니어링 태스크 포스 RFC를 비롯해 많은 곳에서 용례를 발견할 수 있다.[1][2]
메타 문법 변수는 다른 단어를 위한 일종의 변수라고 비유할 수 있다. 대수학에서 x나 y와 같은 알파벳을 다른 숫자를 위한 변수로 사용하는 것과 비슷하다.[1]
메타 문법 변수는 정확한 기능이나 용도가 중요하지 않은 변수나 함수 등을 명명할 때 쓰이며, 코딩 교육 상황과 같이 언어의 문법이나 알고리즘 스케치 등 주로 개념적인 부분을 묘사하는 상황에서 사용된다.
일반적인 메타 문법 변수
[편집]모든 프로그래밍 언어에서 일반적으로 사용되는 메타 문법 변수에는 foobar, foo, bar, baz, qux, quux, quuz, corge, grault, garply, waldo, fred, plugh, xyzzy, thud 등이 있는데, 이들 단어 중 일부는 Colossal Cave Adventure라는 게임에서 유래된 것으로 알려져 있다.[1] 영국에서는 특수하게 Wibble, wobble, wubble, flob 등을 추가로 사용하기도 한다.[3]
완전한 목록은 MIT Press에서 출판한 The Hacker's Dictionary에서 찾아볼 수 있다.
일반적으로 사용되는 메타 문법 변수들은 대개 영어에서 파생된 것이지만, 몇몇 문화권에서는 특정 프로그래밍 언어를 중심으로 독특한 하위문화를 발달시켜 특유의 메타 문법 변수를 사용하기도 한다.
사용 예
[편집]C
[편집]아래 예제에서는 함수 이름(foo)과 변수 이름(bar)이 메타 문법 변수로 사용되었다.
// 함수 foo를 선언하고 정의.
int foo(void)
{
// 변수 bar를 선언하고 1로 초기화.
int bar = 1;
return bar;
}
파이썬
[편집]Python 프로그래밍 언어에서는 메타 문법 변수로 주로 spam, ham, eggs가 사용되곤 한데, 이는 동명의 코미디 그룹인 Monty "Python"에서 제작한 코미디 단편인 "Spam"에서 유래된 것이다.[4][5] 다음 예제에서 spam, ham, eggs는 변수 이름에 메타 문법 변수 이름이 사용된 경우이다.
# spam이라는 이름의 변수를 선언.
def spam():
# ham이라는 변수를 선언.
ham = "Hello World!"
# eggs라는 변수를 선언.
eggs = 1
return
같이 보기
[편집]각주
[편집]- ↑ 가 나 다 Etymology of "Foo".
- ↑ RFC-Editor.org
- ↑ wibble. (n.d.). Jargon File 4.4.7. Retrieved February 23, 2010, from
- ↑ Python Tutorial
- ↑ General Python FAQ