메타사변수

Metasyntactic variable

메타 구문 변수는 컴퓨터 과학, 특히 컴퓨터 프로그래밍에서 자리 표시자로 식별되는 특정 단어 또는 단어 집합입니다.이러한 단어는 일반적으로 소스 코드에 있으며 실제 사용 전에 수정 또는 대체하기 위한 것입니다.foo와 bar라는 단어는 HTTP(웹), TCP/IP이메일 [1][2]프로토콜과 같은 기본 인터넷 기술을 정의하는 문서인 330개가 넘는 인터넷 기술 위원회 의견 요청에서 사용되기 때문에 좋은 예입니다.

수학적 유추에 따르면, 메타 구문 변수는 대수학에서 문자가 [1]숫자의 변수로 사용되는 것과 같이 다른 단어들의 변수로 사용되는 단어이다.

메타 구문 변수는 정확한 동일성이 중요하지 않고 개념을 보여주는 데만 사용되는 변수, 함수 및 명령과 같은 엔티티의 이름을 지정하는 데 사용됩니다. 이는 프로그래밍을 가르치는 데 유용합니다.

공통 메타문법 변수

영어는 대부분의 컴퓨터 프로그래밍 언어의 기초 언어, 즉 언어 프랑카이기 때문에 이러한 변수는 다른 언어 사용자를 위해 작성된 프로그램이나 프로그램의 예에서도 흔히 볼 수 있습니다.

그러나 일반적인 이름은 특정 프로그래밍 언어를 중심으로 발달한 하위 문화에 따라 달라질 수 있습니다.

일반적인 사용법

모든 프로그래밍 언어에서 일반적으로 사용되는 메타 구문 변수에는 foobar, foo, bar, baz, qux, quux, quuz, corge, grault, waldo, fred, plugh, xyzzzy, babble, thud 등이 있습니다.이 단어들 중 몇 개는 게임 Civous Cave [1][3]Adventure를 지칭합니다.

완전한 참조는 해커의 사전이라는 제목MIT 프레스 에서 찾을 수 있습니다.

일본인입니다

일본어에서는 호그(hoge),[4] 가(fuga)라는 말이 일반적으로 사용되며, 그 외에 피요(piyo), 호게라(hogera), 호게호게(hoge)[5][circular reference] 등이 있다.메타문법 변수로써 호그의 기원은 알려지지 않았지만, 1980년대 [5]초반으로 추정된다.

프랑스어

프랑스에서는 토토라는 단어가 널리 쓰이고 있으며, 관련 자리 표시자로 타타, 티티, 투투가 있다.토토 사용에 대해 일반적으로 알려진 정보원 중 하나는 Téte toto [citation needed]Toto와 농담을 할 때 사용되는 스톡 캐릭터에 대한 언급이다.

사용 예

인터랙티브 셸 세션에서 할당되어 에코된 메타 구문 변수 FOO의 스크린샷입니다.

C

다음 예제에서는 함수 이름 foo와 변수 이름 막대가 모두 메타 구문 변수입니다.//로 시작하는 행은 주석입니다.

// foo라는 이름의 함수 인트 후우(무효) {    // 변수 막대를 선언하고 값을 1로 설정합니다.    인트 막대기 = 1;     돌아가다 막대기; } 

C++

다양한 인수 전달 메커니즘의 [6]예를 포함하는 기능 프로토타입:

무효 푸우(과일 막대기); 무효 푸우(과일* 막대기); 무효 푸우(컨스턴트 과일& 막대기); 

C++ 언어의 함수 오버로드 기능을 보여주는 예

무효 푸우(인트 막대기); 무효 푸우(인트 막대기, 인트 바즈); 무효 푸우(인트 막대기, 인트 바즈, 인트 쿼크); 

파이썬

스팸, 에그는 Python 프로그래밍 [7]언어에서 사용되는 주요 메타 구문 변수입니다.이것은 [8]언어의 어명인 몬티 파이썬의 유명한 코미디 스케치인 "스팸"에 대한 언급이다.다음 예제에서는 스팸, 에그가 메타 구문 변수이고 #로 시작하는 행이 주석입니다.

# 스팸이라는 이름의 함수를 정의합니다. 방어하다 스팸():      # 가변 햄의 정의      = '헬로 월드'      # 가변 달걀을 정의하다     달걀 = 1      돌아가다 

IETF 코멘트 요구

IETF RFC컴퓨터 프로그래밍 언어는 모두 일반 텍스트로 렌더링되므로 메타 구문 변수를 명명 규칙에 따라 구분할 필요가 있습니다. 왜냐하면 메타 구문 변수는 컨텍스트에서 명확하지 않기 때문입니다.

전자 메일 프로토콜을 설명하는 공식 IETF 문서의 예를 다음에 나타냅니다(RFC 772 - RFC 3092에서 인용).

모든 것이 정상입니다. 이제 수신자를 지정할 수 있습니다.S: MRCP TO: <Foo@Y> <CRLF> R: 200 OK S: MRCP TO: <Raboof@Y> <CRLF> R: 553 이러한 사용자는 여기 S: MRCP TO: <bar@Y> <CRLF> R: 200 OK S: MRCP TO: <@Y,@X, fubar@Z> <CRLF> R: 200 OK "에 대한 장애는 "rabooff"에 영향을 주지 않습니다. 

(texinfo 문서에서는 메타 변수와 일부 texinfo 파일에 문서화되어 있는 프로그래밍 언어에서 사용되는 단순한 변수의 구별을 강조하고 있습니다.@var 명령을 사용하여 메타 구문 변수를 지정합니다.메타 구문 변수는 다른 텍스트를 나타내는 것입니다.예를 들어 함수 설명서에서 메타 구문 변수를 사용하여 해당 함수에 전달되는 인수를 설명해야 합니다.프로그래밍 언어의 특정 변수 이름에는 @var를 사용하지 마십시오.이것들은 프로그램의 특정명이기 때문에,[9] @code가 적합합니다.

위의 예에서 반영되는 또 다른 포인트는 메타바리블이 특정 스키마 내의 모든 외관 내에서 동일한 인스턴스로 균일하게 대체된다는 규칙입니다.이것은 형식 문법비말단 기호와 대조되며, 형식 문법은 생산 오른쪽에 있는 비말단 기호를 다른 [10]인스턴스로 대체할 수 있습니다.

데이터 예시

SQL

SQL Databases 예제에서는 ACME라는 이름을 사용하고 교육을 위해 플레이스홀더 회사명으로 사용하는 것이 일반적입니다.'ACME 데이터베이스'라는 용어는 일반적으로 훈련 또는 테스트만을 위해 사용되는 훈련 또는 예제 전용 데이터베이스 데이터 세트를 의미합니다.또한 ACME은 SQL 사용 예를 보여주는 문서, 많은 교육용 텍스트에서 흔히 볼 수 있는 관행 및 Microsoft 및 Oracle [11][12][13]등의 기업에서 제공하는 기술 문서에도 일반적으로 사용됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c Eastlake 3rd, Donald E.; Manros, Carl-Uno; Raymond, Eric S. Etymology of "Foo". doi:10.17487/RFC3092. RFC 3092.
  2. ^ "Document Retrieval". RFC Editor.
  3. ^ Laughlin, Stuart (November 18, 2016). "Metasyntactic variable". programming@ProgClub (Mailing list). Retrieved November 18, 2016.
  4. ^ "hogeの意味・使い方 - 英和辞典 Weblio 辞書". ejje.weblio.jp.
  5. ^ a b メタ構文変数 (일본어)
  6. ^ Mongan, John; Kindler, Noah; Giguere, Eric (2012). Programming Interviews Exposed: Secrets to Landing Your Next Job. John Wiley & Sons. p. 242. ISBN 978-1-118-28720-0.
  7. ^ "The Python Tutorial — Python 3.8.1 documentation". docs.python.org.
  8. ^ "General Python FAQ — Python 3.9.7 documentation". docs.python.org. Python Software Foundation. 2021-09-04. Why is it called Python?. Archived from the original on 2021-08-26. Retrieved 2021-09-05.
  9. ^ "Marking Words and Phrases". Texinfo 4.0. The GNU Documentation Format. Archived from the original on 2009-11-06. Retrieved 2012-11-25.
  10. ^ R. D. Tennent (2002). Specifying Software: A Hands-On Introduction. Cambridge University Press. pp. 36–37 and 210. ISBN 978-0-521-00401-5.
  11. ^ Kriegel, Alex (2008). SQL bible. Indianapolis, Ind: Wiley. ISBN 978-0-470-22906-4. OCLC 402446308.
  12. ^ Ruel, Chris (2014). Oracle 12c for dummies (in Danish). Hoboken, NJ: John Wiley & Sons. ISBN 978-1-118-74531-1. OCLC 870334544.
  13. ^ "Work with data in ASP.NET Core Apps". docs.microsoft.com.

외부 링크