กลับไปหน้าบทความ

อ่าน 4 นาที

ภาษาการเขียนโปรแกรมเชกสเปียร์

ภาษาการเขียนโปรแกรมเชกสเปียร์ ( SPL ) เป็นภาษาการเขียนโปรแกรมเฉพาะกลุ่มที่ออกแบบโดย Jon Åslund และ Karl Wiberg เช่นเดียวกับภาษาการเขียนโปรแกรม...

ภาษาการเขียนโปรแกรมเชกสเปียร์

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )

ภาษาการเขียนโปรแกรมเชกสเปียร์ ( SPL ) เป็นภาษาการเขียนโปรแกรมเฉพาะกลุ่มที่ออกแบบโดย Jon Åslund และ Karl Wiberg [ 1 ]เช่นเดียวกับภาษาการเขียนโปรแกรม Chefมันถูกออกแบบมาเพื่อให้โปรแกรมดูเหมือนเป็นอย่างอื่นที่ไม่ใช่โปรแกรม — ในกรณีนี้คือบทละคร ของเชกสเปียร์

ในตอนต้นของโปรแกรม จะมีการประกาศรายการตัวละครและ สแต็กจำนวนหนึ่ง ซึ่งตั้งชื่อตามตัวละครอย่างเช่น "โรมิโอ" และ "จูเลียต" ตัวละครเหล่านี้จะสนทนากันโดยการเปลี่ยนแปลงค่าสูงสุดของกันและกัน เพิ่มและลบข้อมูลในสแต็ก และทำการอ่าน/เขียนข้อมูล นอกจากนี้ตัวละครยังสามารถถามคำถามกันได้ ซึ่งคำถามเหล่านี้จะทำหน้าที่เหมือนคำสั่งเงื่อนไขโดยรวมแล้ว รูปแบบการเขียนโปรแกรมนี้คล้ายกับภาษาแอสเซมบลี มาก แต่มีรายละเอียดมากกว่า

การเขียนโปรแกรมด้วยบทละครของเชกสเปียร์

ชื่อ

บรรทัดแรกในโปรแกรมของเชกสเปียร์เรียกว่า 'ชื่อเรื่อง' ส่วนโปรแกรมประมวลผลจะถือว่าทุกอย่างตั้งแต่บรรทัดแรกจนถึงจุดแรกเป็นคำอธิบายเพิ่มเติม

ตัวละคร

ส่วนนี้ใช้สำหรับประกาศตัวแปร ตัวแปรแต่ละตัวสามารถเก็บค่าจำนวนเต็มที่มีเครื่องหมายได้ และมีรูปแบบดังต่อไปนี้:

ชื่อ, คำอธิบาย 

Nameชื่อตัวแปรอยู่ที่ไหน และ Descriptionคอมไพเลอร์จะไม่สนใจ คอมไพเลอร์จะรู้จักเฉพาะชื่อที่ตรงกับตัวละครของเชกสเปียร์จริงเท่านั้น[ 1 ]

องก์และฉาก

โค้ดในภาษาเชกสเปียร์ถูกแบ่งออกเป็นส่วนย่อยๆActsซึ่งแต่ละส่วนประกอบด้วยScenesตัวอักษร (ตัวแปร) ที่โต้ตอบกัน แต่ละส่วนActย่อยSceneจะมีหมายเลขโรมันกำกับและทำหน้าที่เป็นGOTOป้ายกำกับ โค้ดใดๆ ที่อยู่หลังเครื่องหมายโคลอนถือเป็นข้อความแสดงความคิดเห็น โดยเขียนในรูปแบบ:

องก์ที่ 1: คำดูถูกและคำเยินยอของแฮมเล็ต ฉากที่ 1: การดูหมิ่นโรมิโอ 

เข้า ออก และ ออก

โดยทั่วไปแล้ว บรรทัดโค้ดแต่ละบรรทัดจะมีรูปแบบเป็นบทสนทนาที่ตัวละครหนึ่งพูดกับอีกตัวละครหนึ่ง นี่คือวิธีการกำหนดค่า เปลี่ยนแปลง หรือแสดงผลของตัวแปร (ตัวละครที่ถูกพูดด้วย) ตัวละครสามารถถูกเรียกได้เพียงว่า "คุณ" "ท่าน" หรือ "ท่าน" เท่านั้น ดังนั้น โดยทั่วไปแล้วจะต้องมีตัวละครสองตัว "บนเวที" ทุกครั้งที่มีการพูดบทสนทนา: ตัวหนึ่งพูด และอีกตัวหนึ่งถูกพูดด้วย[ 1 ]ในการเรียกตัวแปรไปยังเวทีEnterจะใช้คำสั่งร่วมกับรายการตัวละครหนึ่งตัวหรือมากกว่าExitคำสั่งจะบอกตัวละครที่ระบุไว้เพียงตัวเดียวให้ออกจากเวทีExeuntหากเรียกมากกว่าหนึ่งตัวละครให้ออก หรือในกรณีที่ไม่มีตัวละครระบุไว้ ตัวละครทั้งหมดจะออกจากเวที[ 1 ]รูปแบบต่อไปนี้ถูกใช้:

[จูเลียตเข้ามา] [โรมิโอและจูเลียตปรากฏตัว] [โรมิโอออกไป] [โรมิโอและจูเลียตออกไป] [ออกไป] 

เส้น

บรรทัดแสดงบทสนทนาที่ตัวละครพูด และประกอบด้วยอย่างน้อยหนึ่งประโยค แต่ละประโยคอาจกำหนดค่าใหม่ให้กับตัวแปร สั่งให้ตัวแปรส่งค่าออกมา หรือสั่งให้ตัวแปรรับค่าเข้ามา บรรทัดยังสามารถจัดการกับสแต็ก หรือทำหน้าที่เหมือนคำสั่ง if/then หรือ goto ได้อีกด้วย บรรทัดเริ่มต้นด้วยชื่อของตัวละครและเครื่องหมายโคลอน เนื่องจากตัวละครนี้เป็นผู้พูด ตัวละครอีกตัวบนเวทีจึงเป็นตัวแปรที่ถูกกล่าวถึงในรูปของ "You", "Thou" หรือ "Thee"

ค่าคงที่และการกำหนดค่า

ค่าคงที่แสดงด้วยการรวมกันของคำนามและคำคุณศัพท์ ภาษาจะรับรู้รายการจำกัดของแต่ละประเภท และรายการทั้งสองจะถูกแยกออกเป็นประเภทที่มีโทนเสียงเป็นบวก ลบ หรือเป็นกลาง ตามที่ Åslund และ Hasselström รับรู้ คำนามที่เป็นบวกและเป็นกลางมีค่าเท่ากับ 1 และคำนามที่เป็นลบมีค่าเท่ากับ -1 คำคุณศัพท์ใดๆ จะคูณคำนามด้วย 2 และคำคุณศัพท์สามารถประกอบกันได้[ 1 ]สรรพนามแสดงความเป็นเจ้าของจะถูกละเว้นโดยตัวแยกวิเคราะห์ ในขณะที่คำที่เกี่ยวข้องกับเลขคณิตพื้นฐานจะถูกรับรู้เป็นการดำเนินการ เช่น "ผลรวม" "ผลหาร" และ "กำลังสาม" ประโยคที่กำหนดค่าให้กับอักขระเริ่มต้นด้วย "คุณ" "เธอ" หรือ "เจ้า" อาจต่อด้วย "เป็น [คำคุณศัพท์ใดๆ] เท่ากับ" จากนั้นจะให้สูตรทางคณิตศาสตร์ในรูปของคำนาม คำคุณศัพท์ ตัวแปร และการดำเนินการสำหรับค่าใหม่ ตัวอย่างของบรรทัดดังกล่าวมีดังต่อไปนี้: [ 1 ]

แฮมเล็ต: แกมันไอ้คนโกหก โง่เง่า ไม่มีพ่อ ตัวเหม็น ขี้ขลาดตาขาว! จูเลียต: คุณชั่วร้ายพอๆ กับรากที่สองของโรมิโอเลย! 

สูตรทางคณิตศาสตร์ยังสามารถใช้ชื่อของตัวละครอื่น ๆ (แม้ว่าตัวละครเหล่านั้นจะไม่ได้อยู่บนเวที) เพื่อใช้ค่าปัจจุบันของตัวละครนั้นในการคำนวณ หรือใช้คำว่า "ตัวคุณเอง" หรือ "ของท่าน" สำหรับตัวละครที่กำลังพูดคุยด้วย

อินพุตและเอาต์พุต

บรรทัดต่างๆ ยังสามารถเรียกใช้ตัวแปรเพื่อให้ผลลัพธ์หรือรับข้อมูลได้ "เปิดใจของคุณ" จะส่งค่าตัวเลขของตัวแปรออกมา ในขณะที่ "พูดในสิ่งที่คุณคิด" จะส่งอักขระ ASCII ที่สอดคล้องกันออกมา "ฟังเสียงหัวใจของคุณ" หรือ "เปิดใจของคุณ" จะทำให้ตัวแปรรับข้อมูลจากผู้ใช้ โดยคำแรกรับตัวเลข และคำหลังรับอักขระ[ 1 ]

คำสั่งเงื่อนไขและคำสั่ง goto

ประโยคเงื่อนไข if/then ถูกตั้งเป็นคำถามโดยตัวละคร คำว่า "as [คำคุณศัพท์ใดๆ] as" แสดงถึงการทดสอบความเท่าเทียมกัน ในขณะที่ "better" และ "worse" สอดคล้องกับมากกว่าและน้อยกว่าตามลำดับ บรรทัดถัดไปที่ขึ้นต้นด้วย "if so" หรือ "if not" จะกำหนดสิ่งที่เกิดขึ้นเพื่อตอบสนองต่อความจริงหรือความเท็จของเงื่อนไขเดิม ประโยค goto เริ่มต้นด้วย "Let us", "We shall" หรือ "We must" ต่อด้วย "return to" หรือ "proceed to" แล้วจึงระบุฉากหรือองก์ ฉากจะถูกตีความว่าเป็นฉากนั้นในองก์ปัจจุบัน ประโยค goto ไม่สามารถเรียกฉากในองก์อื่นได้[ 1 ]ประโยคเงื่อนไขที่จะเรียก goto จะมีลักษณะดังนี้: [ 1 ]

จูเลียต: ฉันดีกว่าคุณเหรอ? แฮมเล็ต: ถ้าเช่นนั้น เรามาเริ่มฉากที่สองกันเลย 

การผลักและการดีดกอง

แต่ละตัวแปรเป็นสแต็กตัวแปรจะมีจำนวนเต็มถูกผลักเข้าไปในสแต็กหากบรรทัดบอกให้ตัวละคร "จดจำ" ค่าที่เหมาะสม เช่น "จำฉัน" หรือ "จำตัวเอง" ค่าบนสุดในสแต็กจะถูกดึงออก (กล่าวคือ ตัวแปรจะใช้ค่านี้) หากตัวละครได้รับคำสั่งให้ "เรียกคืน" อะไรก็ตาม ข้อความทั้งหมดหลังจากคำนี้จะถือว่าเป็นความคิดเห็น[ 1 ]

ตัวอย่างโค้ด

โปรแกรม มาตรฐาน"Hello, World!" :

แนวคิดคือการสร้างค่า ASCIIสำหรับแต่ละตัวอักษรของสตริงและพิมพ์ออกมาโดยใช้คำสั่ง "Speak your mind" ตัวอย่างเช่น บทสนทนาบรรทัดแรกที่แฮมเล็ตพูดนั้นใช้การคำนวณทางคณิตศาสตร์เพื่อกำหนดค่าทศนิยม 72 (เลขฐานสอง 1001000) ให้กับตัวละครเอกอีกคนคือโรมิโอ ซึ่งในค่า ASCII จะตรงกับตัวอักษร 'H'

อย่าจากลา (Do Not Adieu) ละครสององก์ โรมิโอ ชายหนุ่มผู้มีความอดทนเป็นเลิศ จูเลียต หญิงสาวผู้สง่างามอย่างน่าทึ่งอีกคนหนึ่ง โอฟีเลีย หญิงผู้โดดเด่นซึ่งมีความขัดแย้งกับแฮมเล็ตอย่างมาก แฮมเล็ต ผู้ประจบประแจงแอนเดอร์เซน (ดูหมิ่นแอนเดอร์เซน) องก์ที่ 1: คำดูถูกและคำเยินยอของแฮมเล็ต ฉากที่ 1: การดูหมิ่นโรมิโอ [แฮมเล็ตและโรมิโอเดินเข้ามา] แฮมเล็ต: แกมันไอ้คนโกหก โง่เง่า ไม่มีพ่อ ตัวเหม็น ขี้ขลาดตาขาว! คุณโง่พอๆ กับความแตกต่างระหว่างคนหล่อ รวย และกล้าหาญ วีรบุรุษและตัวคุณเอง! จงพูดในสิ่งที่คุณคิด! คุณกล้าหาญพอๆ กับผลรวมของตุ๊กตาอ้วนๆ ที่ใช้แล้วและเต็มไปด้วยฝุ่นของคุณนั่นแหละ กางเกงในเก่าๆ ผุพัง และฤดูร้อนที่สวยงาม อบอุ่น สงบสุข และมีแดดจ้า วัน คุณมีสุขภาพดีเท่ากับผลต่างระหว่างผลรวมของ กุหลาบแดงหวานที่สุด พ่อของฉัน และตัวคุณเอง! พูดออกมาเลย! คุณขี้ขลาดพอๆ กับผลรวมของตัวคุณเองและส่วนต่าง ระหว่างอาณาจักรที่ยิ่งใหญ่และหยิ่งผยอง กับม้าตัวหนึ่ง จงพูดในสิ่งที่คุณคิด แสดงความคิดเห็นของคุณออกมา! [โรมิโอออกไป] ฉากที่ 2: การสรรเสริญจูเลียต [จูเลียตเข้ามา] แฮมเล็ต: เจ้าช่างหวานราวกับผลรวมของโรมิโอ ม้าของเขา และ... แมวดำ! พูดออกมาเลย! [จูเลียตออกไป] ฉากที่ 3: การสรรเสริญโอฟีเลีย [โอฟีเลียปรากฏตัว] แฮมเล็ต: เธอช่างงดงามราวกับความแตกต่างระหว่างโรมิโอและสี่เหลี่ยมจัตุรัส ของต้นไม้ใหญ่สีเขียวที่สงบเงียบ จงพูดในสิ่งที่คุณคิด! เธอช่างงดงามราวกับผลผลิตจากเมืองชนบทใหญ่ และสิ่งมหัศจรรย์ของฉัน กระเป๋าปักลายไร้ก้น พูดในสิ่งที่คุณคิด! เธอช่างเปี่ยมด้วยความรัก ดุจดั่งผลผลิตจากท้องฟ้าสีครามสดใสบริสุทธิ์ที่สุด และผลรวมของกระรอกกับม้าขาว เจ้าสวยงามราวกับ ความแตกต่างระหว่างจูเลียตกับตัวเจ้า จงพูดในสิ่งที่เจ้าคิด! [โอฟีเลียและแฮมเล็ตเดินออกไป] องก์ที่ 2: ลับหลังแฮมเล็ต ฉากที่ 1: บทสนทนาระหว่างโรมิโอและจูเลียต [โรมิโอและจูเลียตปรากฏตัว] โรมิโอ: พูดในสิ่งที่คุณคิดออกมา คุณกังวลมากพอๆ กับผลรวมของตัวคุณเองและคนอื่นๆ ความแตกต่างระหว่างแฮมสเตอร์ตัวเล็กเรียบของฉันกับจมูกของฉัน พูดออกมาสิ จิตใจ! จูเลียต: พูดในสิ่งที่คุณคิดออกมา! คุณแย่พอๆ กับแฮมเล็ต! คุณตัวเล็กเท่ากับ... ความแตกต่างระหว่างกำลังสองของความแตกต่างระหว่างม้าโพนี่ตัวน้อยของฉัน และสุนัขตัวใหญ่ขนดกของคุณ และลูกบาศก์ของเจ้าตัวน้อยน่าสงสารของคุณ กางเกงรัดเป้า พูดในสิ่งที่คุณคิด! [โรมิโอออกไป] ฉากที่ 2: บทสนทนาระหว่างจูเลียตและโอฟีเลีย [โอฟีเลียปรากฏตัว] จูเลียต: เจ้าดีพอๆ กับผลหารระหว่างโรมิโอและผลรวมของสิ่งเล็กๆ น้อยๆ สัตว์มีขนและปลิง พูดในสิ่งที่คุณคิดออกมาได้เลย! โอฟีเลีย: เจ้าช่างน่ารังเกียจพอๆ กับผลหารระหว่างโรมิโอและสองเท่าของ... ความแตกต่างระหว่างต้นมิสเซิลโทกับแผลพุพองติดเชื้อที่มีหนองไหล! พูดสิ จิตใจของคุณ! [ออกไป] 

ดูเพิ่มเติม

  • หน้าแรก
  • หน้า SourceForge
  • ภาษาการเขียนโปรแกรมของเชกสเปียร์บนSlashdot
  • AZ แห่งภาษาโปรแกรม: เชคสเปียร์บนComputerworld
  • โปรแกรมแปลภาษา SPL ที่เขียนด้วยภาษา Python ( ที่เก็บโค้ดบน GitHub )
  • คอมไพเลอร์แปลงข้อความของเชกสเปียร์เป็นภาษาซี เขียนด้วยภาษา PythonบนGitHub
  • shakespearelang.org
  • โปรแกรมแปลภาษาและโปรแกรมแก้ไขข้อผิดพลาดออนไลน์
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Shakespeare_Programming_Language&oldid=1359490445 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ภาษาการเขียนโปรแกรมเชกสเปียร์

ภาษาการเขียนโปรแกรมเชกสเปียร์ ( SPL ) เป็นภาษาการเขียนโปรแกรมเฉพาะกลุ่มที่ออกแบบโดย Jon Åslund และ Karl Wiberg เช่นเดียวกับภาษาการเขียนโปรแกรม...

ชื่อ

บรรทัดแรกในโปรแกรมของเชกสเปียร์เรียกว่า 'ชื่อเรื่อง' ส่วนโปรแกรมประมวลผลจะถือว่าทุกอย่างตั้งแต่บรรทัดแรกจนถึงจุดแรกเป็นคำอธิบายเพิ่มเติม

ตัวละคร

ส่วนนี้ใช้สำหรับประกาศตัวแปร ตัวแปรแต่ละตัวสามารถเก็บค่าจำนวนเต็มที่มีเครื่องหมายได้ และมีรูปแบบดังต่อไปนี้:

องก์และฉาก

โค้ดในภาษาเชกสเปียร์ถูกแบ่งออกเป็นส่วนย่อยๆ Acts ซึ่งแต่ละส่วนประกอบด้วย Scenes ตัวอักษร (ตัวแปร) ที่โต้ตอบกัน แต่ละส่วน Act ย่อย Scene จะมีหมายเลขโรมันกำกับและทำหน้าที่เป็น GOTO ป้ายกำกับ โค้ดใดๆ ที่อยู่หลังเครื่องหมายโคลอนถือเป็นข้อความแสดงความคิดเห็น...