메타 문법 변수

위키백과, 우리 모두의 백과사전.
(초문법적 변수에서 넘어옴)

메타 문법 변수 (메타신택틱 변수, metasyntactic variable)컴퓨터 과학, 특히 컴퓨터 프로그래밍에서 견본용 이름으로 사용되는 특정 단어들을 이르는 말이다. 한국에서 익명의 대상을 지칭할 때 사용하는 갑, 을, 병, 정... 과 유사한데, 다만 메타 문법 변수들은 주로 프로그램 소스 코드를 작성할 때 추후 구체적인 이름으로 변경될 것을 상정하고 사용된다는 점에서 용도 차이가 있다. foobar라는 단어가 대표적인 예제로서, 다수의 인터넷 엔지니어링 태스크 포스 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

각주[편집]

  1. Etymology of "Foo". 
  2. RFC-Editor.org
  3. wibble. (n.d.). Jargon File 4.4.7. Retrieved February 23, 2010, from
  4. Python Tutorial
  5. General Python FAQ