ภาษาพีต

ภาษาพีต () คือภาษาโปรแกรมเชิงความลับที่ออกแบบโดยเดวิด มอร์แกน-มาร์ (David Morgan-Mar) โดยใช้ภาพบิตแมปซึ่งดูคล้ายศิลปะนามธรรมเป็นสื่อกลางสำหรับการเขียนโปรแกรม ภาษาพีต‌ได้รับการตั้งชื่อตามศิลปินชาวดัตช์ชื่อ พีต มอนดรีออน (Piet Mondrian) ผู้ซึ่งสร้างผลงานศิลปะนามธรรมด้วยเส้นและบล็อกสี่เหลี่ยม

 รูปแบบการเขียน 
โปรแกรมที่เขียนด้วยภาษาพีตจะใช้ภาพบิตแมปที่อยู่ในรูปแบบ GIF ขนาดกว้างยาวใดๆ ก็ได้เป็นสื่อกลาง (เทียบเท่ากับซอร์สโค้ด) พิกเซลแต่ละช่องใช้แทนคำสั่งหนึ่งคำสั่งและมีชื่อเรียกว่า โคเดล (โค้ด+พิกเซล) สีที่สามารถใส่ได้ในแต่ละโคเดลของภาพบิตแมปมีได้เพียง 20 สีต่อไปนี้ สำหรับสีอื่นๆ ที่ปรากฏนอกเหนือจากนี้จะมีความหมายเป็นสีขาว

 #FFC0C0(แดงอ่อน)  #FFFFC0(เหลืองอ่อน)  #C0FFC0(เขียวอ่อน)  #C0FFFF(ฟ้าอ่อน)  #C0C0FF(น้ำเงินอ่อน)  #FFC0FF(ม่วงอ่อน) #FF0000(แดง)  #FFFF00(เหลือง)  #00FF00(เขียว)  #00FFFF(ฟ้า)  #0000FF(น้ำเงิน)  #FF00FF(ม่วง) #C00000(แดงเข้ม)  #C0C000(เหลืองเข้ม)  #00C000(เขียวเข้ม)  #00C0C0(ฟ้าเข้ม)  #0000C0(น้ำเงินเข้ม)  #C000C0(ม่วงเข้ม)  #FFFFFF(ขาว)    #000000(ดำ) 

 ความหมายและการทำงาน 
ความหมายของคำสั่งสามารถแปลได้จากความต่างของค่าสี (hue) และความสว่าง (lightness) ระหว่างโคเดลก่อนหน้ากับโคเดลปัจจุบันในขณะทำงาน โดยการวนรอบ (cycle) เพื่อพิจารณาความต่างของค่าสีจะเรียงลำดับจาก แดง→เหลือง→เขียว→ฟ้า→น้ำเงิน→ม่วง→แดง และความสว่างเรียงตาม อ่อน→กลาง→เข้ม→อ่อน ส่วนสีขาวและสีดำไม่อยู่ในการวนรอบใดๆ ซึ่งคำสั่งทุกอย่างจะแปลผลด้วยอินเทอร์พรีเตอร์และเก็บทุกสิ่งที่คำนวณได้ไว้ในสแต็ก (stack) หากคำสั่งใดไม่สามารถกระทำได้ คำสั่งนั้นจะถูกข้ามไป เช่น คำสั่ง pop ออกจากสแต็กว่างเปล่า เป็นต้น

 ความสว่าง ค่าสี ไม่ต่าง ต่าง 1 ขั้น ต่าง 2 ขั้น ไม่ต่าง - push pop ต่าง 1 ขั้น add subtract multiply ต่าง 2 ขั้น divide mod not ต่าง 3 ขั้น greater pointer switch ต่าง 4 ขั้น duplicate roll in (ตัวเลข) ต่าง 5 ขั้น in (ตัวอักษร) out (ตัวเลข) out (ตัวอักษร)

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

 อ้างอิง 
 ภาษาพีต โดยเดวิด มอร์แกน-มาร์ พร้อมตัวอย่าง

 ดูเพิ่ม 
 วิทยาการอำพรางข้อมูล

 แหล่งข้อมูลอื่น 
 ภาษาพีตที่เอโซแลง (วิกิ)
 Hello, world! ในภาษาพีต โดยโทมัส สคอช
 โปรแกรมเขียนและอินเทอร์พรีเตอร์สำหรับภาษาพีต

พีต
พีต