ผลต่างระหว่างรุ่นของ "Brainfxxx"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย 'ภาษา '''Brainfuck''' เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่อ...') |
Jittat (คุย | มีส่วนร่วม) |
||
แถว 1: | แถว 1: | ||
− | ภาษา '''Brainfuck''' เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่ออกแบบในปี 1993 โดย Urban Müller | + | ภาษา '''Brainfuck''' (ต่อไปจะเรียกสั้น ๆ ว่า BF) เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่ออกแบบในปี 1993 โดย Urban Müller |
− | + | ในข้อนี้เราจะเขียนโปรแกรมภาษา BF ให้ทำงานต่าง ๆ ก่อนอื่นมารู้จักภาษานี้กันก่อน | |
+ | |||
+ | == ภาษา BF == | ||
+ | |||
+ | โมเดลของคอมพิวเตอร์ของภาษานี้จะมีหน่วยความจำที่ในแต่ละช่องเก็บข้อมูลขนาด 8 บิต จำนวน 30,000 ช่อง เมื่อเริ่มทุกช่องมีค่าเป็น 0 และพอยน์เตอร์สำหรับชี้ตำแหน่ง คำสั่งในภาษานี้มีทั้นสิ้น 8 คำสั่ง ดังตารางด้านล่าง: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! style="text-align:center;"|Character | ||
+ | !align="left"|Meaning | ||
+ | |- | ||
+ | |style="text-align:center"|<code>></code> | ||
+ | ||increment the data pointer (to point to the next cell to the right). | ||
+ | |- | ||
+ | |style="text-align:center"|<code><</code> | ||
+ | ||decrement the data pointer (to point to the next cell to the left). | ||
+ | |- | ||
+ | |style="text-align:center"|<code>+</code> | ||
+ | ||increment (increase by one) the byte at the data pointer. | ||
+ | |- | ||
+ | |style="text-align:center"|<code>-</code> | ||
+ | ||decrement (decrease by one) the byte at the data pointer. | ||
+ | |- | ||
+ | |style="text-align:center"|<code>.</code> | ||
+ | ||output the byte at the data pointer. | ||
+ | |- | ||
+ | |style="text-align:center"|<code>,</code> | ||
+ | ||accept one byte of input, storing its value in the byte at the data pointer. | ||
+ | |- | ||
+ | |style="text-align:center"|<code>[</code> | ||
+ | ||if the byte at the data pointer is zero, then instead of moving the [[Program Counter|instruction pointer]] forward to the next command, [[Branch (computer science)|jump]] it ''forward'' to the command after the ''matching'' <code>]</code> command. | ||
+ | |- | ||
+ | |style="text-align:center"|<code>]</code> | ||
+ | ||if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it ''back'' to the command after the ''matching'' <code>[</code> command. | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | การทำงานของภาษานี้ประกอบด้วย |
รุ่นแก้ไขเมื่อ 23:56, 16 พฤษภาคม 2556
ภาษา Brainfuck (ต่อไปจะเรียกสั้น ๆ ว่า BF) เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่ออกแบบในปี 1993 โดย Urban Müller
ในข้อนี้เราจะเขียนโปรแกรมภาษา BF ให้ทำงานต่าง ๆ ก่อนอื่นมารู้จักภาษานี้กันก่อน
ภาษา BF
โมเดลของคอมพิวเตอร์ของภาษานี้จะมีหน่วยความจำที่ในแต่ละช่องเก็บข้อมูลขนาด 8 บิต จำนวน 30,000 ช่อง เมื่อเริ่มทุกช่องมีค่าเป็น 0 และพอยน์เตอร์สำหรับชี้ตำแหน่ง คำสั่งในภาษานี้มีทั้นสิ้น 8 คำสั่ง ดังตารางด้านล่าง:
Character | Meaning |
---|---|
>
|
increment the data pointer (to point to the next cell to the right). |
<
|
decrement the data pointer (to point to the next cell to the left). |
+
|
increment (increase by one) the byte at the data pointer. |
-
|
decrement (decrease by one) the byte at the data pointer. |
.
|
output the byte at the data pointer. |
,
|
accept one byte of input, storing its value in the byte at the data pointer. |
[
|
if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ] command.
|
]
|
if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [ command.
|
การทำงานของภาษานี้ประกอบด้วย