เมนูนำทาง
ภาษาเบรนฟัก รูปแบบการเขียนและการทำงานภาษาเบรนฟักประกอบด้วยคำสั่งเพียง 8 ชนิด เขียนแทนด้วยอักษรหนึ่งตัวต่อหนึ่งคำสั่ง โปรแกรมภาษาเบรนฟักจะทำงานตามคำสั่งไปทีละตัวอักษร ในขณะที่อักษรอื่นที่ปรากฏจะถูกข้ามไป อักษรทั้ง 8 ตัวมีความหมายที่เทียบเท่ากับภาษาซีสามารถแจกแจงได้ดังนี้
คำสั่ง | ความหมาย | โค้ดภาษาซีที่เทียบเท่า* |
---|---|---|
> | เพิ่มพอยเตอร์ขึ้นหนึ่ง (ย้ายพอยเตอร์ไปยังเซลล์ถัดไป) | ++ptr; |
< | ลดพอยเตอร์ลงหนึ่ง (ย้ายพอยเตอร์ไปยังเซลล์ก่อนหน้า) | --ptr |
+ | เพิ่มค่าในพอยเตอร์ขึ้นหนึ่ง | ++(*ptr); |
- | ลดค่าในพอยเตอร์ลงหนึ่ง | --(*ptr); |
. | แสดงผลเป็นอักษรตามรหัสแอสกีจากค่าในพอยเตอร์ | putchar(*ptr); |
, | รับข้อมูลอักษรเข้าและเก็บค่ารหัสแอสกีลงในพอยเตอร์ | *ptr=getchar(); |
[ | กระโดดไปยัง ] ถ้าค่าในพอยเตอร์เป็นศูนย์ | while (*ptr) { |
] | กระโดดไปยัง [ ถ้าค่าในพอยเตอร์ไม่เป็นศูนย์ | } |
ptr
เป็นพอยเตอร์ประเภท unsigned char*
และได้กำหนดค่าให้ชี้ไปยังอาร์เรย์ที่มีสมาชิกเป็นศูนย์แล้วภาษาเบรนฟักทำงานบนอาร์เรย์ขนาด 30,000 เซลล์ (ช่อง) โดยมีตัวแปรพอยเตอร์ที่เคลื่อนย้ายได้เป็นตัวชี้ตำแหน่งเซลล์ปัจจุบัน เมื่อเริ่มต้นโปรแกรม ทุกเซลล์จะมีข้อมูลเป็นศูนย์ และพอยเตอร์ชี้ที่เซลล์แรกเสมอ (ที่ดัชนีของเซลล์เท่ากับศูนย์) โปรแกรมจะดำเนินตามคำสั่งในซอร์สโค้ดไปทีละคำสั่งจนกระทั่งสิ้นสุดที่อักษรตัวสุดท้าย การแสดงผลบนจอภาพและการรับข้อมูลเข้าจากคีย์บอร์ดเป็นตัวอักษรจะอ้างถึงค่าตามรหัสแอสกี (หรือรหัสอักขระตามที่คอมพิวเตอร์ใช้)
เมนูนำทาง
ภาษาเบรนฟัก รูปแบบการเขียนและการทำงานใกล้เคียง
ภาษาเกาหลี ภาษาเยอรมัน ภาษาเวียดนาม ภาษาเปอร์เซีย ภาษาเขมร ภาษาเอสเปรันโต ภาษาเตลูกู ภาษาเขมรถิ่นไทย ภาษาเบงกอล ภาษาเซี่ยงไฮ้แหล่งที่มา
WikiPedia: ภาษาเบรนฟัก http://www.muppetlabs.com/~breadbox/bf/ http://strlen.com/false/index.html http://esoteric.voxelperfect.net/wiki/Brainfuck http://gynvael.coldwind.pl/n/bf_125_bytes https://curlie.org/Computers/Programming/Languages...