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

อ่าน 8 นาที

ภาษาโปรแกรมเชิงลึกลับ

ภาษาโปรแกรมเชิงลึกลับ ( บางครั้งย่อว่าesolang ) หรือภาษาแปลกๆ : 5 คือภาษาโปรแกรมที่ออกแบบมาเพื่อทดสอบขอบเขตของการออกแบบภาษาโปรแกรมคอมพิวเตอร์...

ภาษาโปรแกรมเชิงลึกลับ

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

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

ประวัติศาสตร์

โปรแกรม " Hello World! " ใน INTERCAL

ภาษาโปรแกรมเฉพาะกลุ่มที่เก่าแก่ที่สุดและยังคง เป็นตัวอย่างมาตรฐานคือINTERCAL [ 4 ]ซึ่งออกแบบในปี 1972 โดยDon Woodsและ James M. Lyon ผู้ซึ่งกล่าวว่าความตั้งใจของพวกเขาคือการสร้างภาษาโปรแกรมที่แตกต่างจากภาษาใดๆ ที่พวกเขาคุ้นเคย[ 5 ]ได้แก่FORTRAN , BASIC , COBOL , ALGOL , SNOBOL , SPITBOL , FOCAL , SOLVE, TEACH, APL , LISPและPL/I [ 6 ] มันล้อเลียนองค์ประกอบของภาษาโปรแกรมที่เป็นที่ยอมรับในสมัยนั้น[ 1 ] : 5

เป็นเวลาหลายปีที่ INTERCAL มีเพียงสำเนาเอกสารคู่มือ INTERCAL เท่านั้น การฟื้นคืนชีพในปี 1990 ในรูปแบบการใช้งานในภาษาC [ 1 ] : 6 ภายใต้Unixได้กระตุ้นความสนใจอย่างมากในการออกแบบภาษาคอมพิวเตอร์เฉพาะกลุ่มโดยเจตนา

ในปี 1993 Wouter van Oortmerssen ได้สร้าง FALSE ซึ่งเป็นภาษาโปรแกรมขนาดเล็กที่เน้นสแต็กโดยมีไวยากรณ์ที่ออกแบบมาเพื่อให้โค้ดมีความคลุมเครือ สับสน และอ่านยากโดยธรรมชาติ คอมไพเลอร์ของมันมีขนาดเพียง 1024 ไบต์[ 7 ]สิ่งนี้เป็นแรงบันดาลใจให้ Urban Müller สร้างภาษาที่เล็กกว่านั้นอีก ซึ่งก็ คือ Brainfuck ที่มีชื่อเสียงในปัจจุบัน ซึ่งประกอบด้วยอักขระที่รู้จักเพียงแปดตัวเท่านั้น Brainfuck ร่วมกับBefunge ของ Chris Pressey (เช่นเดียวกับ FALSE แต่มีตัวชี้คำสั่งแบบสองมิติ) เป็นหนึ่งในภาษาโปรแกรมเฉพาะกลุ่มที่ได้รับการสนับสนุนดีที่สุดในปัจจุบัน โดยมีตัวอย่างที่เป็นแบบอย่างของTuring tarpit ขั้นต่ำ และคุณสมบัติภาษาที่คลุมเครือโดยไม่จำเป็น Brainfuck มีความเกี่ยวข้องกับ ตระกูล P′′ของเครื่อง Turing

ลักษณะทั่วไป

แม้ว่าภาษาการเขียนโปรแกรมเฉพาะกลุ่มจะแตกต่างกันในหลาย ๆ ด้าน แต่ก็มีลักษณะทั่วไปบางประการที่บ่งบอกถึงภาษาหลายภาษา เช่น การล้อเลียน ความเรียบง่าย และเป้าหมายในการทำให้การเขียนโปรแกรมยากขึ้น[ 4 ]ภาษาการเขียนโปรแกรมเฉพาะกลุ่มหลายภาษา เช่น Brainfuck และภาษาที่คล้ายกัน ใช้ตัวอักษรเดี่ยวเป็นคำสั่ง อย่างไรก็ตาม ไม่ใช่เรื่องแปลกที่ภาษาจะอ่านทีละบรรทัดเหมือนภาษาการเขียนโปรแกรมทั่วไป

การแสดงข้อมูลที่เป็นเอกลักษณ์

โดยทั่วไปแล้วภาษาโปรแกรมเชิงคำสั่งแบบดั้งเดิมจะอนุญาตให้เก็บข้อมูลไว้ในตัวแปร แต่ภาษาเฉพาะกลุ่มอาจใช้วิธีการจัดเก็บและเข้าถึงข้อมูลที่แตกต่างกัน ภาษาอย่าง Brainfuck และMalbolgeอนุญาตให้อ่านข้อมูลผ่านตัวชี้ เพียงตัวเดียวเท่านั้น ซึ่งต้องย้ายไปยังตำแหน่งที่ต้องการก่อนจึงจะอ่านข้อมูลได้ ภาษาอื่นๆ เช่นBefungeและShakespeareใช้สแต็ก หนึ่งตัวหรือมากกว่า เพื่อเก็บข้อมูล ทำให้วิธีการดำเนินการคล้ายกับสัญกรณ์ Reverse Polishสุดท้ายนี้ ยังมีภาษาที่สำรวจรูปแบบอื่นของการแสดงตัวเลข: รูปแบบ Boolfuck ของ Brainfuck อนุญาตให้ดำเนินการกับบิตเดียวเท่านั้น ในขณะที่ Malbolge และรูปแบบ TriINTERCAL ของ INTERCAL แทนที่บิตทั้งหมดด้วยระบบเลขฐาน สามฐาน 3 [ 8 ]

การแสดงคำสั่งเฉพาะ

ภาษาเฉพาะกลุ่มยังแสดงวิธีการแสดงคำสั่งโปรแกรมที่ไม่เหมือนใครอีกด้วย บางภาษา เช่นBefungeและPietแสดงโปรแกรมในสองมิติขึ้นไป โดยการควบคุมโปรแกรมจะเคลื่อนที่ไปในทิศทางต่างๆ ได้หลายทิศทางผ่านโปรแกรม[ 9 ]ซึ่งแตกต่างจากภาษาทั่วไปที่โปรแกรมเป็นชุดคำสั่งที่มักพบตามลำดับ ภาษาอื่นๆ ปรับเปลี่ยนคำสั่งให้ปรากฏในรูปแบบที่ไม่ธรรมดา ซึ่งมักจะเป็นรูปแบบที่มนุษย์สามารถอ่านได้โดยมีความหมายอื่นนอกเหนือจากคำสั่งพื้นฐานShakespeareบรรลุเป้าหมายนี้โดยการทำให้โปรแกรมทั้งหมดคล้ายกับบทละครของเชกสเปียร์Chefก็ทำเช่นเดียวกันโดยการให้โปรแกรมทั้งหมดเป็นสูตรอาหาร[ 8 ] Chef โดดเด่นเป็นพิเศษตรงที่บางคนได้สร้างโปรแกรมที่ทำงานได้สำเร็จทั้งในฐานะโปรแกรมและสูตรอาหาร แสดงให้เห็นถึงความสามารถของภาษาในการสร้างความหมายสองนัย ซึ่งเรียกว่ามัลติโค้ดดิ้ง[ 10 ]ภาษาเฉพาะกลุ่มมัลติโค้ดดิ้งที่การอ่านโค้ดสองแบบส่งผลกระทบต่อกันในเชิงสุนทรียศาสตร์นั้นถูกนำมาเปรียบเทียบกับการเขียนตามข้อจำกัดของขบวนการ Oulipo [ 8 ] [ 11 ]

ความยากลำบากในการอ่านและเขียน

ภาษาโปรแกรมเฉพาะกลุ่มหลายภาษาถูกออกแบบมาเพื่อสร้างโค้ดที่คลุมเครือ อย่างมาก ทำให้ยากต่อการอ่านและการเขียน[ 1 ]จุดประสงค์ของเรื่องนี้อาจเป็นการสร้างปริศนาหรือความท้าทายที่น่าสนใจสำหรับผู้เขียนโปรแกรม ตัวอย่างเช่น Malbolgeถูกออกแบบมาให้ท้าทายอย่างชัดเจน ดังนั้นจึงมีคุณสมบัติเช่นโค้ดที่แก้ไขตัวเองได้และการดำเนินการที่ขัดกับสัญชาตญาณอย่างมาก[ 1 ]ในทางกลับกัน ภาษาเฉพาะกลุ่มบางภาษาก็เขียนยากเนื่องจากทางเลือกในการออกแบบอื่นๆBrainfuckยึดมั่นในแนวคิดของชุดคำสั่งแบบเรียบง่าย ดังนั้นแม้ว่าคำสั่งของมันจะตรงไปตรงมาในหลักการ แต่โค้ดที่เกิดขึ้นนั้นยากต่อการอ่านสำหรับมนุษย์ ความยากของ INTERCALเกิดขึ้นจากการเลือกที่จะหลีกเลี่ยงการดำเนินการที่ใช้ในภาษาโปรแกรมอื่นๆ ซึ่งมาจากต้นกำเนิดของมันในฐานะการล้อเลียนภาษาอื่นๆ[ 1 ]

การล้อเลียนและการล้อเลียน

หนึ่งในเป้าหมายของภาษาโปรแกรมเชิงลึกลับคือการล้อเลียนหรือล้อเลียนภาษาและแนวโน้มที่มีอยู่แล้วในสาขาการเขียนโปรแกรม[ 1 ]ตัวอย่างเช่น ภาษาเชิงลึกลับภาษาแรก INTERCAL เริ่มต้นจากการล้อเลียนภาษาที่ใช้ในช่วงทศวรรษ 1960 เช่นAPL , FortranและCOBOLกฎของ INTERCAL ดูเหมือนจะเป็นสิ่งที่ตรงกันข้ามกับกฎในภาษาอื่นๆ เหล่านี้[ 12 ]อย่างไรก็ตาม หัวข้อของการล้อเลียนไม่ได้เป็นภาษาโปรแกรมที่ได้รับการยอมรับเสมอไป ตัวอย่างเช่น เชกสเปียร์สามารถมองได้ว่าเป็นการล้อเลียนโครงสร้างของบทละครของเชกสเปียร์ ภาษา Ook! เป็นการล้อเลียนBrainfuckโดยที่คำสั่งแปดคำสั่งของ Brainfuck ถูกแทนที่ด้วยเสียงลิงอุรังอุตังต่างๆ เช่น "Ook. Ook?" [ 8 ]

ตัวอย่าง

เบฟันจ์

Befungeอนุญาตให้ตัวชี้คำสั่งเคลื่อนที่ไปในหลายมิติผ่านโค้ด ตัวอย่างเช่น โปรแกรมต่อไปนี้แสดง"Hello World"โดยการผลักอักขระในลำดับย้อนกลับลงบนสแต็ก จากนั้นพิมพ์อักขระในลูปที่วนตามเข็มนาฬิกาผ่านคำสั่ง>, :, v, _, ,, ^และ

"dlroW olleH" > : v ^ , _@

มี Befunge หลายเวอร์ชัน โดยเวอร์ชันที่พบมากที่สุดคือ Befunge-93 ซึ่งตั้งชื่อตามปีที่วางจำหน่าย[ 13 ]

แคลคูลัสแลมบ์ดาไบนารี

แคลคูลัสแลมบ์ดาไบนารีได้รับการออกแบบจาก มุมมอง ของทฤษฎีสารสนเทศเชิงอัลกอริทึมเพื่อให้สามารถสร้างโค้ดที่หนาแน่นที่สุดเท่าที่จะเป็นไปได้ด้วยวิธีการที่น้อยที่สุด โดยมีตัวแปลตัวเองขนาด 29 ไบต์ ตะแกรงจำนวนเฉพาะขนาด 21 ไบต์ และตัวแปล Brainfuck ขนาด 112 ไบต์[ 14 ]

สมองบ้า

Brainfuckได้รับการออกแบบมาเพื่อความเรียบง่ายขั้นสุดและนำไปสู่โค้ดที่ซ่อนเร้น โดยโปรแกรมจะมีอักขระที่แตกต่างกันเพียงแปดตัวเท่านั้น โปรแกรมต่อไปนี้จะแสดงผล "Hello, world!": [ 15 ]

++++++++++ [ > +++++++ > ++++++++++ > +++ <<< - ] > ++ . > + . +++++++ .. +++ . > ++ . << +++++++++++++++ . > . +++ . ------ . -------- . > + .

อักขระอื่นๆ ทั้งหมดจะถูกละเว้น +-<>,.[]

เชฟ

Chef เป็นภาษาโปรแกรมเชิงสแต็กที่สร้างโดยDavid Morgan-Marซึ่งออกแบบมาเพื่อให้โปรแกรมดูเหมือนสูตรอาหาร [ 16 ] โปรแกรมประกอบด้วยชื่อเรื่อง รายการตัวแปรและค่าข้อมูล และรายการคำสั่งการจัดการสแต็ก[ 17 ]หลักการออกแบบที่ล้อเล่นระบุว่า "สูตรอาหารไม่ควรสร้างผลลัพธ์ที่ถูกต้องเท่านั้น แต่ยังต้องง่ายต่อการเตรียมและอร่อยด้วย" และ Morgan-Mar ตั้งข้อสังเกตว่าโปรแกรมตัวอย่าง"Hello, World!"ที่ใช้ไข่ 101 ฟองและน้ำมัน 111 ถ้วย (~26,640 มล.) จะสร้าง "อาหารจำนวนมากสำหรับคนเดียว" [ 17 ] [ 18 ]

แฟรกทราน

โปรแกรมFRACTRANเป็นรายการเศษส่วนบวกเรียงลำดับพร้อมกับอินพุตจำนวนเต็มบวกเริ่มต้นโปรแกรมจะทำงานโดยการคูณจำนวนเต็มด้วยเศษส่วนแรกในรายการซึ่งได้ผลลัพธ์เป็นจำนวนเต็ม จากนั้นจำนวนเต็มจะถูกแทนที่ด้วยและทำซ้ำกฎ หากไม่มีเศษส่วนใดในรายการที่ได้ผลลัพธ์เป็นจำนวนเต็มเมื่อคูณด้วยโปรแกรมจะหยุดทำงาน FRACTRAN ถูกคิดค้นโดยนักคณิตศาสตร์John Conway [ 19 ]

อินเตอร์คัล

INTERCALซึ่งย่อมาจาก "Compiler Language With No Pronounceable Acronym" ถูกสร้างขึ้นในปี 1972 เพื่อเป็นการล้อเลียนเสียดสีแง่มุมต่างๆ ของภาษาโปรแกรมต่างๆ ในขณะนั้น[ 6 ]

เจเอสฟัค

JSFuckเป็นรูปแบบการเขียนโปรแกรมJavaScript ที่แปลกประหลาด โดยเขียนโค้ดโดยใช้เพียงหกตัวอักษร ได้แก่[, ], (, ), !, และ+แตกต่างจาก Brainfuck ซึ่งต้องใช้คอมไพเลอร์หรือตัวแปลภาษาของตัวเอง JSFuck เป็นโค้ด JavaScript ที่ถูกต้อง หมายความว่าโปรแกรม JSFuck สามารถทำงานได้ในเว็บเบราว์เซอร์หรือเอนจิ้นใดๆ ที่แปล JavaScript ได้[ 20 ] [ 21 ] มันถูกใช้ในการโจมตี แบบ Cross-Site Scripting (XSS) หลายครั้งบนเว็บไซต์ต่างๆ เช่นeBayเนื่องจากความสามารถในการหลีกเลี่ยงตัวกรองการตรวจจับ Cross-Site Scripting [ 22 ]

ลอลโค้ด

LOLCODEถูกออกแบบมาให้มีลักษณะคล้ายกับการพูดของlolcatsตัวอย่าง "Hello World" มีดังนี้:

ไฮ CAN HAS STDIO? มองเห็น "โลกแห่งไฮ!" ขอบคุณและลาก่อน 

แม้ว่าความหมายของ LOLCODE จะไม่ผิดปกติ แต่ไวยากรณ์ของมันได้รับการอธิบายว่าเป็น ปรากฏการณ์ ทางภาษาซึ่งเป็นตัวอย่างที่ผิดปกติของภาษาพูดที่ไม่เป็นทางการและภาษาแสลงทางอินเทอร์เน็ตในการเขียนโปรแกรม[ 23 ]

มัลโบลจ์

Malbolge (ตั้งชื่อตามนรกชั้นที่ 8 ) ถูกออกแบบมาให้เป็นภาษาโปรแกรมที่ยากและลึกลับที่สุด ในบรรดาคุณสมบัติอื่นๆ โค้ดจะปรับเปลี่ยนตัวเองได้ตามการออกแบบ และผลของคำสั่งจะขึ้นอยู่กับที่อยู่ในหน่วยความจำ[ 24 ]

ปีเอท

โปรแกรม Piet ที่พิมพ์คำว่า 'Piet'
โปรแกรม "Hello World" ในภาษา Piet

Pietเป็นภาษาที่ออกแบบโดยDavid Morgan-Marซึ่งโปรแกรมของเขาเป็นบิตแมปที่ดูเหมือน งาน ศิลปะนามธรรม[ 25 ]การดำเนินการจะถูกชี้นำโดย "ตัวชี้" ที่เคลื่อนที่ไปรอบๆ รูปภาพ จากบริเวณสีต่อเนื่องหนึ่งไปยังอีกบริเวณหนึ่ง ขั้นตอนต่างๆ จะถูกดำเนินการเมื่อตัวชี้ออกจากบริเวณนั้น

มีสีทั้งหมด 20 สีที่กำหนดพฤติกรรมไว้ ได้แก่ สี "สดใส" 18 สี ซึ่งเรียงลำดับตามวงจรเฉดสี 6 ขั้นตอนและวงจรความสว่าง 3 ขั้นตอน และสีดำและสีขาว ซึ่งไม่ได้เรียงลำดับ เมื่อออกจากสี "สดใส" และเข้าสู่สีอื่น ขั้นตอนที่ดำเนินการจะถูกกำหนดโดยจำนวนขั้นตอนของการเปลี่ยนแปลงเฉดสีและความสว่าง ไม่สามารถเข้าสู่สีดำได้ เมื่อตัวชี้พยายามเข้าสู่บริเวณสีดำ กฎการเลือกบล็อกถัดไปจะถูกเปลี่ยนแปลงแทน หากลองใช้กฎที่เป็นไปได้ทั้งหมดแล้ว โปรแกรมจะสิ้นสุด บริเวณนอกขอบของภาพก็ถือว่าเป็นสีดำเช่นกัน สีขาวจะไม่ดำเนินการใดๆ แต่จะอนุญาตให้ตัวชี้ "ผ่าน" พฤติกรรมของสีอื่นๆ นอกเหนือจาก 20 สีที่ระบุไว้จะขึ้นอยู่กับคอมไพเลอร์หรือตัวแปลภาษา[ 25 ]

ตัวแปรจะถูกเก็บไว้ในหน่วยความจำในรูปของจำนวนเต็มที่มีเครื่องหมายในสแต็ก เดียว ขั้น ตอนการทำงานที่ระบุไว้ส่วนใหญ่จะเกี่ยวข้องกับการดำเนินการบนสแต็กนั้น ในขณะที่ขั้นตอนอื่นๆ จะเกี่ยวข้องกับการรับ/ส่งข้อมูล และกฎที่ตัวชี้การคอมไพล์เคลื่อนที่[ 26 ]

Piet ได้รับการตั้งชื่อตาม Piet Mondrianจิตรกรชาวดัตช์[ 27 ]ชื่อเดิมที่ตั้งใจไว้คือMondrianนั้นถูกใช้ไปแล้วโดยระบบแสดงภาพข้อมูลทางสถิติแบบโอเพนซอร์ส[ 25 ]

เชกสเปียร์

ภาษาการเขียนโปรแกรมแบบเชกสเปียร์ (SPL) ถูกออกแบบมาเพื่อให้โปรแกรมมีลักษณะคล้าย บทละคร ของเชกสเปียร์ตัวอย่างเช่น คำสั่งต่อไปนี้ประกาศจุดหนึ่งในโปรแกรมซึ่งสามารถเข้าถึงได้โดยใช้คำสั่งประเภท GOTO:

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

อุนแลมบ์ดา

Unlambdaเป็นภาษาการเขียนโปรแกรมเชิงฟังก์ชันแบบมินิมัลลิสต์ที่อิงตามแคลคูลัส SKIแต่รวมเข้ากับคอนทินิวเอชัน ระดับเฟิร์สคลาส และ I/O แบบเชิงคำสั่ง (โดยปกติอินพุตจะต้องใช้คอนทินิวเอชัน) [ 28 ]

เวลาโต้

Velatoถูกสร้างขึ้นโดย Daniel Temkin ในปี 2009 และใช้ ไฟล์ MIDIเป็นซอร์สโค้ด โปรแกรมประกอบด้วยโน้ตดนตรี โดยแต่ละคำสั่งจะถูกกำหนดโดยช่วงห่างระหว่างโน้ตที่ต่อเนื่องกันเมื่อเทียบกับโน้ตรูทที่เลือก[ 29 ] การออกแบบนี้ทำให้โค้ด Velato ที่ถูกต้องสามารถใช้เป็นองค์ประกอบทางดนตรีได้ด้วย[ 30 ]

พื้นที่ว่าง

โปรแกรม Hello Worldที่มีช่องว่างพร้อมการเน้นไวยากรณ์
  แท็บ
  พื้นที่

Whitespaceใช้เฉพาะอักขระช่องว่าง ASCII (ช่องว่าง U+0020, แท็บ U+0009 และขึ้นบรรทัดใหม่ U+000A) โดยไม่สนใจอักขระอื่นๆ ซึ่งสามารถใช้สำหรับแสดงความคิดเห็นได้ นี่เป็นสิ่งที่ตรงกันข้ามกับภาษาดั้งเดิมหลายภาษาที่ไม่แยกความแตกต่างระหว่างอักขระช่องว่างต่างๆ โดยถือว่าแท็บและช่องว่างเหมือนกัน นอกจากนี้ยังช่วยให้สามารถซ่อนโปรแกรม Whitespace ในซอร์สโค้ดของโปรแกรมในภาษาต่างๆ เช่นCได้[ 31 ]

บริบททางวัฒนธรรม

บริบททางวัฒนธรรมของภาษาโปรแกรมอิเล็กทรอนิกส์ได้รับการศึกษาโดย Geoff Cox ซึ่งเขียนว่าภาษาโปรแกรมอิเล็กทรอนิกส์ "เปลี่ยนความสนใจจากการควบคุมและสั่งการไปสู่การแสดงออกและการปฏิเสธทางวัฒนธรรม" [ 32 ]โดยมองว่าภาษาโปรแกรมอิเล็กทรอนิกส์มีความคล้ายคลึงกับศิลปะการเขียนโค้ดและบทกวีการเขียนโค้ด เช่นmezangelleของMez Breezeซึ่งเป็นความเชื่อที่คนอื่นๆ ในสาขานี้เห็นพ้องด้วย[ 33 ] Daniel Temkin อ้างว่า "ภาษาโปรแกรมอิเล็กทรอนิกส์เป็นระบบแบบเปิดกว้าง มีการทำงานร่วมกันโดยธรรมชาติ และห่างไกลจากรูปแบบที่เป็นรูปธรรมใดๆ" ซึ่ง "ท้าทายหรือยืนยันแนวคิดที่กว้างขึ้นในวัฒนธรรมการเขียนโปรแกรมและในวิธีการสอนวิทยาศาสตร์คอมพิวเตอร์" รวมถึงรูปแบบที่เป็นกลางและ "เป็นมืออาชีพ" ที่Edsgar Dijkstra สนับสนุนใน หนังสือThe Humble Programmer [ 34 ]

บรรณานุกรม

  • ปาโลก-แบร์ฌส์, คามิลล์ (2009) "ภาษา ésotériques". ข้อมูลPoétique des codes sur le réseauหอจดหมายเหตุร่วมสมัยไอเอสบีเอ็น 978-2-914610-70-4.
  • ค็อกซ์, เจฟฟ์ (2013). การพูดรหัส: การเข้ารหัสในฐานะการแสดงออกทางสุนทรียศาสตร์และการเมือง . สำนักพิมพ์ MIT. ISBN 978-0-262-01836-4.
  • Kneusel, Ronald (2022). Strange Code: Esoteric Languages ​​That Make Programming Fun Again . No Starch Press. ISBN 978-1718502406.
  • Esolang วิกิเกี่ยวกับภาษาโปรแกรมเชิงลึกลับ
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Esoteric_programming_language&oldid=1359539146 "

สรุปเนื้อหา

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

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

ภาษาโปรแกรมเชิงลึกลับ ( บางครั้งย่อว่าesolang ) หรือภาษาแปลกๆ : 5 คือภาษาโปรแกรมที่ออกแบบมาเพื่อทดสอบขอบเขตของการออกแบบภาษาโปรแกรมคอมพิวเตอร์...

ประวัติศาสตร์

ภาษาโปรแกรมเฉพาะกลุ่มที่เก่าแก่ที่สุดและยังคง เป็น ตัวอย่างมาตรฐานคือ INTERCAL [ 4 ] ซึ่งออกแบบในปี 1972 โดย Don Woods และ James M.

ลักษณะทั่วไป

แม้ว่าภาษาการเขียนโปรแกรมเฉพาะกลุ่มจะแตกต่างกันในหลาย ๆ ด้าน แต่ก็มีลักษณะทั่วไปบางประการที่บ่งบอกถึงภาษาหลายภาษา เช่น การล้อเลียน ความเรียบง่าย และเป้าหมายในการทำให้การเขียนโปรแกรมยากขึ้น [ 4 ] ภาษาการเขียนโปรแกรมเฉพาะกลุ่มหลายภาษา เช่น Brainfuck...

การแสดงข้อมูลที่เป็นเอกลักษณ์

โดยทั่วไปแล้ว ภาษาโปรแกรมเชิงคำสั่งแบบดั้งเดิม จะอนุญาตให้เก็บข้อมูลไว้ในตัวแปร แต่ภาษาเฉพาะกลุ่มอาจใช้วิธีการจัดเก็บและเข้าถึงข้อมูลที่แตกต่างกัน ภาษาอย่าง Brainfuck และ Malbolge อนุญาตให้อ่านข้อมูลผ่าน ตัวชี้ เพียงตัวเดียวเท่านั้น...