ผลต่างระหว่างรุ่นของ "Brainfxxx"

จาก Theory Wiki
ไปยังการนำทาง ไปยังการค้นหา
(หน้าที่ถูกสร้างด้วย 'ภาษา '''Brainfuck''' เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่อ...')
 
แถว 1: แถว 1:
ภาษา '''Brainfuck''' เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่ออกแบบในปี 1993 โดย Urban Müller
+
ภาษา '''Brainfuck''' (ต่อไปจะเรียกสั้น ๆ ว่า BF) เป็นภาษาโปรแกรมประหลาดภาษาหนึ่ง ที่ออกแบบในปี 1993 โดย Urban Müller
  
อ่านรายละเอียดเกี่ยวกับภาษาได้ที่ [https://en.wikipedia.org/wiki/Brainfuck บทความ Brainfuck ที่วิกิพีเดีย]
+
ในข้อนี้เราจะเขียนโปรแกรมภาษา BF ให้ทำงานต่าง ๆ ก่อนอื่นมารู้จักภาษานี้กันก่อน
 +
 
 +
== ภาษา BF ==
 +
 
 +
โมเดลของคอมพิวเตอร์ของภาษานี้จะมีหน่วยความจำที่ในแต่ละช่องเก็บข้อมูลขนาด 8 บิต จำนวน 30,000 ช่อง เมื่อเริ่มทุกช่องมีค่าเป็น 0 และพอยน์เตอร์สำหรับชี้ตำแหน่ง  คำสั่งในภาษานี้มีทั้นสิ้น 8 คำสั่ง ดังตารางด้านล่าง:
 +
 
 +
{| class="wikitable"
 +
|-
 +
! style="text-align:center;"|Character
 +
!align="left"|Meaning
 +
|-
 +
|style="text-align:center"|<code>&gt;</code>
 +
||increment the data pointer (to point to the next cell to the right).
 +
|-
 +
|style="text-align:center"|<code>&lt;</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.


การทำงานของภาษานี้ประกอบด้วย