메타 문법 변수

메타 문법 변수 (메타신택틱 변수, 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