- 다양한 주제에 대해 자유롭게 글을 작성하는 게시판입니다.
Date 17/01/09 05:44:04
Name   O Happy Dagger
Subject   Shakespeare, a programming language
오늘 타임라인을 읽다가 moira님이 쓴 글이 보였어요.

https://kongcha.net/pb/view.php?id=timeline&no=16631

내용은 <만약 헤밍웨이가 자바스크립트로 코딩한다면: 피보나치, 팩토리얼, 행복수, 소수, 메서드 체인에 대한 문학 거장들의 기발한 해법>라는 책에 대한 소개와 더불어 개인적인 경험에 대한 이야기였는데, 그 글을 보면서 생각난게 좀 오래된 프로그래밍 언어중에 하나로 Shakespeare라는 프로그래밍 랭귀지예요. 이 언어는 실재로 코딩을 위한 언어라기보다는, 프로그래밍 언어가 어느정도까지 변형 혹은 그 폭이 될 수 있는가를 보여주는 언어인데요. 코딩을 하고나면 마치 희곡을 쓴 것 같은 느낌이 듭니다. 90년대 초에 나와서 컴파일러까지 개발이 되어 있어서 컴파일을 해 보고 싶으시면 sourceforge에서 컴파일러를 다운 받아서 해 보시면 될꺼예요.

http://shakespearelang.sourceforge.net/report/shakespeare/

위의 링크에 보면 예제가 있는데, 세익스피어로 소수를 찾는 프로그래밍을 하면 아래와같이 된다고 합니다. 엄청길고 쓸모없어보이지만... 약간의 문학적 향취가 느껴지기는 하나요???

Prime Number Computation in Copenhagen.

Romeo, a young man of Verona.
Juliet, a young woman.
Hamlet, a temporary variable from Denmark.
The Ghost, a limiting factor (and by a remarkable coincidence also
        Hamlet's father).


                    Act I: Interview with the other side.

                    Scene I: At the last hour before dawn.

[Enter the Ghost and Juliet]

The Ghost:
You pretty little warm thing! Thou art as prompt as the difference
between the square of thyself and your golden hair. Speak your mind.

Juliet:
Listen to your heart!

[Exit the Ghost]

[Enter Romeo]

Juliet:
Thou art as sweet as a sunny summer's day!


                    Act II: Determining divisibility.

                    Scene I: A private conversation.

Juliet:
Art thou more cunning than the Ghost?

Romeo:
If so, let us proceed to scene V.

[Exit Romeo]

[Enter Hamlet]

Juliet:
You are as villainous as the square root of Romeo!

Hamlet:
You are as lovely as a red rose.

                    Scene II: Questions and the consequences thereof.

Juliet:
Am I better than you?

Hamlet:
If so, let us proceed to scene III.

Juliet:
Is the remainder of the quotient between Romeo and me as good as
nothing?

Hamlet:
If so, let us proceed to scene IV.
Thou art as bold as the sum of thyself and a roman.

Juliet:
Let us return to scene II.

                    Scene III: Romeo must die!

[Exit Hamlet]

[Enter Romeo]

Juliet:
Open your heart.

[Exit Juliet]

[Enter Hamlet]

Romeo:
Thou art as rotten as the difference between nothing and the sum of a
snotty stinking half-witted hog and a small toad!
Speak your mind!

[Exit Romeo]

[Enter Juliet]

                    Scene IV: One small dog at a time.

[Exit Hamlet]

[Enter Romeo]

Juliet:
Thou art as handsome as the sum of thyself and my chihuahua!
Let us return to scene I.

                    Scene V: Fin.

[Exeunt]



2


    기쁨평안(FTHR컨설팅)
    오오오오 신기하네요
    O Happy Dagger
    첨 보고나서 정말 신기했어요. 지금도 신기하네요.
    기아트윈스
    ㄷㄷㄷㄷ 신기신기.
    O Happy Dagger
    저도 신기...
    와 넘 이쁜 언어예요. 넘나 이쁘고 또 넘나 잉여잉여한 기운이 많아 보이는..ㅋㅋ 90년대의 여유가 느껴진다고나 할까요.
    탐라에 가볍게 쓴 글에다 이렇게 멋진 응답을 해주셔서 감사해요. :D 오래된 의문의 벽이 조금 부서진 것 같아요. 역시 사람은 배워야...
    Open your heart/ Speak your mind 이런 대사들도 뭔가 목적을 가진 명령어 같아 보이는데 무슨 뜻일까나...
    O Happy Dagger
    뭐... 뭔가 프린트하라는게 아닐까 싶은데. 저도 명령어를 볼 생각을 해본건 아니래서요. ㅎㅎ...
    MagnaDea
    저런 류 언어들을 esolang(esoteric programming language)이라고 하는데, 생각보다 어마어마하게 많습니다. (그리고 지금도 꾸준히 생겨나고 있습니다.)
    CS 학부에서 compiler 수업을 듣다보면 간단한 언어를 만드는게 생각보다 어렵지 않다는 것을 알게 되고, 잉여력 넘치는 덕후 들은 자신의 입맛에 맞는 언어들을 한번쯤은 만들어보고 싶어하죠.

    esolang wiki(https://esolangs.org/wiki/Main_Page)에 가보시면 세상에 잉여로운 CS 덕후들이 만든 esolang들의 리스트를 보실 수 있습니다.
    O Happy Dagger
    학부때 컴퓨터쪽 친구들 컴파일러 수업들을때면 학기프로젝트로 컴파일러 만들어서 내곤 하더라고요.
    목록
    번호 제목 이름 날짜 조회 추천
    5019 기타Banks of the Ohio 3 O Happy Dagger 17/02/27 5347 1
    4984 기타김정남 암살에 사용된 것으로 유력한 신경가스 - VX가스 16 모모스 17/02/24 10302 6
    4977 기타4분기에 본 애니메이션들 15 별비 17/02/23 8936 1
    4961 기타[만년필]사파리와 사파리를 먹는 자들 11 사슴도치 17/02/22 8068 3
    4936 기타최근 구입한 게이밍기기들.jpg 13 김치찌개 17/02/20 5907 0
    4901 기타현실 직시하기, 그것의 어려움 38 은머리 17/02/17 8547 12
    4883 기타홍차상자 이야기 :) 52 새벽3시 17/02/15 8001 36
    4866 기타[스포있음] 드래곤볼의 설정들 (생각나는대로..) 1 피아니시모 17/02/14 4554 1
    4864 기타홍차상자 후기 15 선율 17/02/14 5088 6
    4860 기타제59회 그래미 어워즈 시상식 2 김치찌개 17/02/13 3485 0
    4854 기타. 43 삼공파일 17/02/12 5428 9
    4829 기타. 21 삼공파일 17/02/10 4607 2
    4816 기타. 51 삼공파일 17/02/09 5691 4
    4805 기타로또 번호와 정규분포 33 April_fool 17/02/08 14172 3
    4798 기타작은 일부터 시작합시다. 10 Liebe 17/02/07 4165 8
    4782 기타. 6 삼공파일 17/02/06 5149 0
    4763 기타. 20 삼공파일 17/02/04 5857 3
    4743 기타. 20 삼공파일 17/02/01 5200 3
    4724 기타나무위키의 “젠더 이퀄리즘” 날조 사건 29 April_fool 17/01/30 8501 2
    4723 기타작자 미상의 인터넷 글 < 그 애 > 14 은머리 17/01/30 23010 3
    4715 기타프리즌 브레이크 시즌5 오피셜 트레일러 5 김치찌개 17/01/28 5215 0
    4708 기타이상한 사람은 계속 이상한 사람일까? (롤계층) 6 집정관 17/01/27 5027 0
    4705 기타2012년 기준 각국의 무역관계 네트워크 분석 - FTA 체결과 같은 무역장벽 철폐를 중심으로 3 April_fool 17/01/27 7769 1
    4703 기타게임 하나 잡아서 해보고 있습니다. 41 Toby 17/01/26 5081 3
    4694 기타스타리그 2017 티저 1 김치찌개 17/01/25 4346 0
    목록

    + : 최근 2시간내에 달린 댓글
    + : 최근 4시간내에 달린 댓글

    댓글