ภาษาพีต

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

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

ความหมายและการทำงาน 

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

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

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

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

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

พีต
พีต