롤코드

LOLCODE
롤코드
LOLCode logo.png
패러다임난해한
설계자.애덤 린제이
첫 등장2007
파일 이름 확장명.dvs, .dvs
웹사이트lolcode.org
영향을 받은
롤캣츠

롤코드는 롤캣 인터넷 의 예로 표현된 언어인 롤스피크에서 영감을 받은 난해한 프로그래밍 언어다.[1]이 언어는 2007년 랜캐스터 대학교 컴퓨터학과 애덤 린제이 연구원에 의해 만들어졌다.[2][3]

언어는 연산자 우선 순위와 정확한 구문 측면에서 명확하게 정의되어 있지 않지만, 기능하는 해석자와 컴파일러가 여럿 존재한다.그 언어에 대한 하나의 해석은 튜링-완전하다는 것이 증명되었다.[4]

언어 구조 및 예

LOLCODE의 키워드는 rolcat 인터넷 밈의 (단축된) patois에서 끌어온 것이다.여기서는 "Hello, World!" 프로그램과 모니터로 파일을 출력하는 간단한 프로그램을 따르십시오.[5]비슷한 코드가 휴스턴 크로니클에서 인쇄되었다.[1]

  • :) 새로운 줄(\n)을 나타낸다.
  • :>는 탭(\t)을 나타낸다.
  • :o는 종(beep) (\g)을 나타낸다.
  • :"는 문자 그대로의 큰따옴표(")를 나타낸다.
  • :: 단일 리터럴 콜론(:)을 나타낸다.

예 1

HIE 1.2 StDIO가 보일 수 있는가? "HI World!" KTHXBYE
코드 댓글
HAI [VERSION] 모든 LOLCODE 프로그램에서,HAI("Hi!")는 프로그램을 소개하고 버전을 명시한다(실제로 아직 사용되지 않았지만).
CAN HAS [LIBRARY]? 많은 프로그래밍 언어에서, 첫 번째 문장 중 하나는 입력과 출력 같은 일반적인 기능을 위한 라이브러리 포함일 것이다.일반적으로 이것은 다음과 같은 통화에 포함된다.#include <stdio.h>(표준 입력/출력 라이브러리를 위한 stdio 스탠딩).이 명령은 도서관이 입수 가능한지 묻고, 가능하면 입수하고, 그렇지 않으면 예외를 제기하는 그것의 혀끝 같은 부패다.[6]그것은 주로 진실성을 위해 존재한다. 사실, 그것은 LOLCODE의 현재 구현에서 무시된다.
VISIBLE [MESSAGE] 화면에 메시지 인쇄
KTHXBYE 처럼HAI프로그램을 소개하고,KTHXBYE('K', 'THX', 'Bye'는 모두 함께 묶여 "OK, thanks, bye"라는 뜻)은 그것을 종료시킨다.
BTW [MESSAGE] LOLCODE에서 한 줄 코멘트를 작성하려면BTW키워드코멘트는 컴파일러에 의해 무시되며 프로그램에 대한 이해를 높이기 위해 작성된다.
OBTW [MESSAGE]TLDR 비슷한BTW키워드, theOBTW키워드는 여러 줄의 코멘트를 표시하며, 코멘트는 여러 줄에 걸쳐 있다.LOLCODE에서OBTW키워드는 다음 시간 동안 여러 줄 코멘트의 시작을 의미한다.TLDR키워드가 끝을 맺는다.

예 2

HAI 1.2 STDIO를 사용할 수 있는가? PLZ 열린 파일 "LOLCATS.TXT"? AWSUM ThX 가시 파일 O 눈에 보이지 않는 "오류!" KTXBXBYE

이 예에서는 파일을 여는 명령([5]PLZ OPEN FILE "NAME"?—"파일 열기를 시도하시겠습니까?") 및 오류 처리(AWSUM THX—"멋지다, 고마워!", 그리고O NOES—"오 안돼!")가 소개된다.

다른 명령에는 다음이 포함된다.I HAS A variable변수를 선언하는 경우,variable R value("이러한 [is/are/being] 값")을 할당하여 오류 메시지를 프런트 엔드로 전송함INVISIBLE대신에VISIBLE그리고BTW("그런데") 의견을 나타내기 위해 파서가 나머지 행을 무시하게 한다.

루프는 다음과 같이 생성된다.IM IN YR ''label''("Im in ur 명사, verbing yr 관련 명사" rollcat meme)에 의해 영향을 받아 으로 종료되었다.IM OUTTA YR ''label''.루프는 키워드로 끊을 수 있다.ENUF("이전") 또는 이전 버전에서는GTFO루프는 조건부로 끝낼 수도 있다.[7]IZ다음 예에서 설명한 바와 같이 명령한다.

예 3

HAI 1.0은 STDIO를 가질 수 있는가? 나는 YR 루프 업 바에 VAR IM을 가지고 있다!!1 가시적인 VAR IZ VAR 10보다 큰가? KTHX IM OUTTA YR 루프 KTXBYE

[5]

이 간단한 프로그램은 숫자 1-11을 표시하고 종료한다(사양 1.0 기준).규격 1.2와 동일한 프로그램은 (VAR이 0에서 시작된다고 가정할 때):

HAI 1.2 성도착이 가능한가?IM in YR 루프 UPPIN YR VAR 양샘 VAR 10 가시 합계 1 IM Outta YR 루프 KTHXB까지YE

예 4

HAI 1.0스타디오가 나올 수 있나?표시 가능한 "U See This" BTW 시각적 "U See Nothing" OBTW볼 수 있는 "U See nothing"표시 가능한 "U Still nothing(U stil see nothing"TLDR 표시 가능한 "U See This"KTHXBY

위의 예는 다음과 같다.

U See this U See this

왜냐하면 3호선이 출력하기 때문이다.U SEE THIS그러나 5행은 그 논평에 의해 언급된 사실 때문에 무시된다.BTW키워드8호선과 9호선은 7호선에서 시작해서 10호선에서 끝나는 여러 줄의 코멘트에 있기 때문에 운행되지 않는다.12호선 출력U SEE THIS그리고 13호선은 프로그램을 종료한다.

구현

LOLCODE 언어의 가장 최근, 최신 통역자는 저스틴 메자가 C로 쓴 lci이다.다양한 플랫폼에서 LOLCODE를 효율적으로 해석한다.[8]

첫 번째 LOLCODE 구현은 Jeff Jones가 쓴 PHP 파서였다.[9][10]파서의 웹사이트는 또한 LOLCODE를 실제 웹 스크립팅 언어로 사용한 최초의 웹사이트였다.BSD 스타일 라이선스를 가진 오픈 소스로서, 여러 웹사이트에서 LOLCODE 스크립팅을 구현하기 위해 포크를 받고 사용되어 왔다.PHP Works 2008에서 우승한 Pecha Kucha 프레젠테이션은 이 파서에 관한 것이었다.[11][12]

는 것이 있다.NET 컴파일러 for LOLCODE는 닉 존슨이 작성했으며 마이크로소프트 개발자 교육 세미나인 TechEd 2007 Conference (호주)에서 주연을 맡았다.[13][14][15][16]

PL/LOLCODE는 Josh Tolley가 이끄는 프로젝트로서 Postgre 내의 서버측 프로그래밍 언어로 LOLCODE를 이용할 수 있게 한다.SQL.[17]

Microsoft Dynamic Language Runtime은 테스트를 위한 LOLCODE를 구현했다.[18]

Lolcode-java(LOLCODE 프로그래밍 언어의 Java 문법/통역사)도 이용할 수[19] 있는 프로젝트지만, 아직 버전 1.3 규격에 부합하지 않는 것으로 보인다.

자바스크립트 번역기로의 LOLCODE도 이용할 수 있다.[20]

또한 앵무새의 컴파일러 도구의 사용을 보여주는 언어 중 하나로 앵무새 가상 머신에 포함된 LOLCODE 컴파일러도 있다.[21]

Piper가 만든 컴파일러, 가상 머신, 디버거(LoLcode 1337, LoLcode 1337, C)가 여기에 있다[22].

병렬 컴퓨팅과 분산 컴퓨팅의 버전은 여기에서 찾을 수 있다.[23]

관련 프로젝트

롤코드는 또한 앤드류 달크가 쓴 롤피톤에 영감을 주었다.LOLPython은 LOLCODE와 비슷하게 LOL에서 영감을 받은 구문을 사용하지만 파이톤과 같은 스타일로 사용한다.LOLPython 소스를 Python 코드로 변환하여 동작한다.[24]

아놀드C는 다른 아놀드 슈왈제네거 영화의 인용문으로 롤스펙을 대체하는 롤코드의 오프슈팅이다.[25]

참조

  1. ^ a b Dwight Silverman (2007-06-06). "I'm in ur newspaper writin mah colum". Chron.com. Retrieved 2007-06-06.
  2. ^ "Computing Department at Lancaster University – News". Lancaster University, Computing Department. Archived from the original on 2009-05-28. Retrieved 2009-06-09.
  3. ^ Hammock, Anne (2008-05-01). "The new fame: Internet celebrity". CNN. Archived from the original on 2009-04-30.
  4. ^ Arachnid. "Proof that LOLCode is turing complete:BrainF*** interpreter in LOLCode". forum.lolcode.com. Archived from the original on 2007-07-11. Retrieved 2008-10-05.
  5. ^ a b c Adam Lindsay (2007-05-25). "LOLCODE main page". lolcode.com. Archived from the original on 2007-10-02. Retrieved 2007-10-02.
  6. ^ "keywords:can-has · LOLCODE". Archived from the original on 2008-02-06. Retrieved 2008-02-10.
  7. ^ "SORN.net". Archived from the original on February 16, 2009. Retrieved 2007-11-07.
  8. ^ "LOLCODE + lci".
  9. ^ "First Parser Comment". Lindsay.at. Archived from the original on 2009-05-19. Retrieved 2009-06-09.
  10. ^ "Tetraboy's LOLCODE parser". Tetraboy.com. Archived from the original on 2009-02-27. Retrieved 2009-06-09.
  11. ^ ""The Best Web Language: LOLCODE" Slides". Slideshare.net. 7 March 2009. Retrieved 2009-06-09.
  12. ^ "PHP Works". mtacon.com. Retrieved 4 November 2014.
  13. ^ 롤코드.Google 코드에서 NET 컴파일러 사용
  14. ^ TechEd Day 2: Microsoft에서 LOLCode 지원 발표, Long Jung
  15. ^ 다음 Visual Studio에서 LOLcode? 젊고 재미있는 고양이들을 위한 NetworkWorld.com
  16. ^ "Video of LOLCODE presentation at TechEd 2007". Blip.tv. 2007-08-17. Archived from the original on 2009-02-05. Retrieved 2009-06-09.
  17. ^ PL/LOLCODE, pgFoundry
  18. ^ 딥 DLR, 존 램, 마틴 말리
  19. ^ "lolcode grammar interpreter written in Java".
  20. ^ "LolCode". Fullvolume.co.uk. Retrieved 2009-06-09.
  21. ^ "Lightning-Parrot". lolcode.com. Archived from the original on 2009-03-22. Retrieved 2009-06-20.
  22. ^ "LoLCode 1337".
  23. ^ "Parallel and Distributed Computing with LOLCODE".
  24. ^ "LOLPython". Dalkescientific.com. 2007-06-01. Retrieved 2009-06-09.
  25. ^ https://lhartikk.github.io/ArnoldC/

외부 링크