fbpx
วิกิพีเดีย

ภาษาพีต

สำหรับการสะสมตัวซากพืช ดูที่ พีต

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

ตัวอย่างโปรแกรมในภาษาพีต แสดงผลลัพธ์เป็นข้อความ "Piet"

รูปแบบการเขียน

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

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

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

 
โปรแกรมแสดงข้อความ "Hello, world!"
 
เส้นทางการเดินตามโคเดลของโปรแกรมดังกล่าว

ความหมายของคำสั่งสามารถแปลได้จากความต่างของค่าสี (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! ในภาษาพีต โดยโทมัส สคอช
  • โปรแกรมเขียนและอินเทอร์พรีเตอร์สำหรับภาษาพีต

ภาษาพ, สำหร, บการสะสมต, วซากพ, งกฤษ, piet, อภาษาโปรแกรมเช, งความล, บท, ออกแบบโดยเดว, มอร, แกน, มาร, david, morgan, โดยใช, ภาพบ, ตแมปซ, งด, คล, ายศ, ลปะนามธรรมเป, นส, อกลางสำหร, บการเข, ยนโปรแกรม, ได, บการต, งช, อตามศ, ลป, นชาวด, ตช, มอนดร, ออน, piet, mondrian,. sahrbkarsasmtwsakphuch duthi phit phasaphit xngkvs Piet khuxphasaopraekrmechingkhwamlbthixxkaebbodyedwid mxraekn mar David Morgan Mar odyichphaphbitaempsungdukhlaysilpanamthrrmepnsuxklangsahrbkarekhiynopraekrm phasaphit idrbkartngchuxtamsilpinchawdtchchux phit mxndrixxn Piet Mondrian phusungsrangphlngansilpanamthrrmdwyesnaelablxksiehliymtwxyangopraekrminphasaphit aesdngphllphthepnkhxkhwam Piet enuxha 1 rupaebbkarekhiyn 2 khwamhmayaelakarthangan 3 xangxing 4 duephim 5 aehlngkhxmulxunrupaebbkarekhiyn aekikhopraekrmthiekhiyndwyphasaphitcaichphaphbitaempthixyuinrupaebb GIF khnadkwangyawid kidepnsuxklang ethiybethakbsxrsokhd phikeslaetlachxngichaethnkhasnghnungkhasngaelamichuxeriykwa okhedl okhd phikesl sithisamarthisidinaetlaokhedlkhxngphaphbitaempmiidephiyng 20 sitxipni sahrbsixun thipraktnxkehnuxcaknicamikhwamhmayepnsikhaw FFC0C0 aedngxxn FFFFC0 ehluxngxxn C0FFC0 ekhiywxxn C0FFFF faxxn C0C0FF naenginxxn FFC0FF mwngxxn FF0000 aedng FFFF00 ehluxng 00FF00 ekhiyw 00FFFF fa 0000FF naengin FF00FF mwng C00000 aedngekhm C0C000 ehluxngekhm 00C000 ekhiywekhm 00C0C0 faekhm 0000C0 naenginekhm C000C0 mwngekhm FFFFFF khaw 000000 da khwamhmayaelakarthangan aekikh opraekrmaesdngkhxkhwam Hello world esnthangkaredintamokhedlkhxngopraekrmdngklaw khwamhmaykhxngkhasngsamarthaeplidcakkhwamtangkhxngkhasi hue aelakhwamswang lightness rahwangokhedlkxnhnakbokhedlpccubninkhnathangan odykarwnrxb cycle ephuxphicarnakhwamtangkhxngkhasicaeriyngladbcak aedng ehluxng ekhiyw fa naengin mwng aedng aelakhwamswangeriyngtam xxn klang ekhm xxn swnsikhawaelasidaimxyuinkarwnrxbid sungkhasngthukxyangcaaeplphldwyxinethxrphrietxraelaekbthuksingthikhanwnidiwinsaetk stack hakkhasngidimsamarthkrathaid khasngnncathukkhamip echn khasng pop xxkcaksaetkwangepla epntn khwamswangkhasi imtang tang 1 khn tang 2 khnimtang push poptang 1 khn add subtract multiplytang 2 khn divide mod nottang 3 khn greater pointer switchtang 4 khn duplicate roll in twelkh tang 5 khn in twxksr out twelkh out twxksr karthangancaerimcakokhedlthimumsaybnsudkhxngphaphaelaedintxipbnokhedlthixyutidkn thisthangkhxngkaredinthukkahnddwy phxyetxrthisthang DP odymithisthangipthangkhwaepnkhaerimtn sungphxyetxrthisthangnisamarthepliynihepnkhabn lang say khwa idtamtxngkar aelayngmitwaeprhnungeriykwa tweluxkokhedl CC ichsahrbphicarnaepliynkaredinipthangsayhruxthangkhwaemuxokhedlthdipnnedintxipimidhruximmi klawkhux epnokhedlsidahruxxyuthisudkhxbphaph sungokhedlsidaepriybesmuxn kaaephng thiimsamarthedinphanipid swnokhedlsikhawcaimthanganid edinphanip opraekrmcasinsudkarthanganemuximmithangxunihedintxip thngphxyetxrthisthangaelatweluxkokhedlxacmikarepliynaeplngbxyinopraekrmhnung aelathukokhedlinphaphimcaepntxngedinphanthnghmdxangxing aekikhphasaphit odyedwid mxraekn mar phrxmtwxyangduephim aekikhwithyakarxaphrangkhxmulaehlngkhxmulxun aekikhphasaphitthiexosaelng wiki Hello world inphasaphit odyothms skhxch opraekrmekhiynaelaxinethxrphrietxrsahrbphasaphitekhathungcak https th wikipedia org w index php title phasaphit amp oldid 9567677, wikipedia, วิกิ หนังสือ, หนังสือ, ห้องสมุด,

บทความ

, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม