วันพุธที่ 1 สิงหาคม พ.ศ. 2561

Syntax : ไวยากรณ์พื้นฐานของ Lua ลัว

วิธีการเขียนโปรแกรม Lua ลัว

ลัวสามารถเขียนโปรแกรมได้ 2 โหมด คือ Interactive และ Script file
Interactive เป็นการเขียนโปรแกรมโดยการป้อนและรันคำสั่งทีละบรรทัด เมื่อเปิด SciTe ขึ้นมาให้เรียกใช้หน้าจอ Command line จะแสดงอยู่ด้านล่างดังรูป จากนั้นให้ทดลองเขียนโปรแกรมพิมพ์ข้อความว่า Hello World! แล้วจะแสดงผลลัพธ์โต้ตอบกลับมาทันทีดังรูป



Script file หรือ Default Mode เป็นการเขียนโปรแกรมที่มีโค้ดคำสั่งติดกันหลายบรรทัด จากนั้นจะเซฟเป็นไฟล์นามสกุล .lua ในตัวอย่างคือ test1.lua แล้วสั่งรัน จากนั้นอินเตอร์พรีเตอร์จะแปลภาษาทีละบรรทัดไปจนจบทั้งหมดแล้วจึงแสดงผลลัพธ์ออกมา ดังรูป จะใช้คำสั่ง print พิมพ์ข้อความ 3 บรรทัด เมื่อรันโปรแกรม จะแสดงผลลัพธ์พิมพ์ข้อความออกมา 3 บรรทัดในครั้งเดียว



Syntax ไวยากรณ์ Lua

1. เขียนหนึ่งคำสั่งหรือสเตตเมนต์ละหนึ่งบรรทัด ไม่ต้องมีเครื่องหมายปิดท้าย ดังตัวอย่างจะเขียนโปรแกรมในโหมด Interactive ให้ตัวแปร b เก็บข้อความ Hello Lua จากนั้นใช้คำสั่ง print ข้อความที่เก็บอยู่ในตัวแปร b ออกมาแสดงผลเป็น 'Hello Lua' (โค้ดที่มี > อยู่ด้านหน้าคำสั่งแสดงว่ากำลังเขียนโปรแกรมอยู่ในโหมด Interactive)

> b = "Hello Lua"
> print(b)
'Hello Lua'

จากโค้ดจะเห็นว่าคำสั่งในแต่ละบรรทัดหรือสเตตเมนต์ไม่ต้องมีเครื่องหมายปิด บอกว่าจบคำสั่งแล้วนะ คือ ว่าถ้าจบบรรทัดนั่นก็คือจบคำสั่ง

2. สามารถเขียนหลายคำสั่งรวมอยู่ในบรรทัดเดียวได้ แต่ต้องคั่นด้วยเครื่องหมายเซมิโคล่อน ; เช่น

> b = "Hello Lua" ; print(b)
'Hello Lua'

3. การเขียนบล็อกของคำสั่งไม่ต้องใส่เครื่องหมายอะไรบอกขอบเขตมากมาย โดยจะให้สเตตเมนต์ในบล็อกแท็บอยู่ด้านขวา ตัวอย่างในสคริปต์โหมด



4. คอมเมนต์ จะเป็นส่วนคำอธิบานโค้ด จะไม่ถูกแปลภาษา
* ถ้าอยู่ในหนึ่งบรรทัด ให้ใส่เครื่องหมาย -- อยู่ด้านหน้า
* ถ้าอยู่เป็นบล็อกให้เครื่องหมาย --[[ นำหน้า และปิดท้ายด้วย --]]


5. Identifiers การกำหนดชื่อ : ใช้กำหนดชื่อตัวแปรและฟังก์ชัน
* ขึ้นต้นด้วยตัวอักษร a ถึง z, A ถึง Z หรือเครื่องหมาย _ ขีดล่าง
* ตามด้วยตัวเลข 0 ถึง 9
* ห้ามมีเครื่องหมาย @, $, และ %
* อักษรตัวเล็กใหญ่มีผลต่างกัน เช่น boy, Boy, BOY จะถือว่าคนละชื่อกัน

ตัวอย่างชื่อที่ถูกต้อง

job23       _data       room39     Source_name

6. Keyword คำสงวน เป็นคำที่ถูกใช้เป็นคำสั่งการทำงานต่างๆ หากตั้งชื่อไปซ้ำคำเหล่านี้จะทำให้การประมวลผลผิดพลาด จึงขอสงวนคำเหล่านี้ไว้ ได้แก่

and            break        do        else
elseif        end            false        for
function    if                in        local
nil            not        or        repeat
return    then        true        until
while

7. Whitespace การเว้นช่องว่าง
* ต้องเว้นวรรคระหว่าง คำสั่งกับตัวแปรและตัวดำเนินการ 1 เคาะ

เช่น    a = 2
          a = b + c

* การเว้นระหว่างคำสั่งจะเว้นหนึ่งบรรทัด ได้กล่าวไว้แล้วในตอนต้น

รู้จักกับภาษา Lua

Lua (ลัว) เป็นภาษาโปรตุเกส แปลว่า พระจันทร์ เป็นส่วนขยายที่ถูกเขียนด้วยภาษาซีซึ่งเป็ยภาษาการเขียนโปรแกรมแบบ Lightweight คือ มีน้ำหนักเบา เพราะกินหน่วยความจำที่น้อย เหมาะกับการสร้างแอพบนมือถือ และมี Syntax ที่น้อยเช่นกัน รวมทั้งเป็นภาษาการเขียนโปรแกรมแบบหลายกระบวนทัศน์ (multi-paradigm programming language) จึงสามารถคอมไพล์ให้รันทำงานข้ามแพลตฟอร์มได้ด้วย ANSI C
Lua ถูกพัฒนาขึ้นโดยการรวมความสามารถกับภาษาอื่น และมุ่งเน้นในสิ่งที่ ภาษาซีทำไม่ได้ เช่น การระยะห่างในการติดต่อกับฮาร์ดแวร์ที่ดี มีโครงสร้างที่เปลี่ยนแปลงได้ ไม่ใช้หน่วยความจำเปลือง ทดสอบและแก้ไขข้อผิดพลาดได้ง่าย มีสภาพแวดล้อมที่ปลอดภัย จัดการหน่วยความจำอัตโนมัติ จัดการสตริงและข้อมูลชนิดอื่นๆ ที่มีขนาดแบบไดนามิก คือปรับเปลี่ยนขนาดได้ตามข้อมูล

จุดเด่นของลัว คือ ง่าย มีประสิทธิภาพ ขยายขีดความสามารถได้ นำไปรันบนแพลตฟอร์มต่างๆ ได้ และเป็นภาษาที่ใช้งานได้ฟรี

การนำลัวไปใช้งาน ได้แก่ สร้างเกม สร้างสคริปต์ที่ใช้งานร่วมกับโปรแกรมอื่น สคริปต์ที่รันบนเว็บ เป็นส่วนขยายการทำงานในระบบฐานข้อมูล และระบบรักษาความปลอดภัยคล้ายกับระบบตรวจจับการบุกรุก เป็นต้น

เตรียมระบบก่อนเขียนโปรแกรม Lua ลัว

การเขียนโปรแกรมภาษาลัว จำเป็นจะต้องใช้งานซอฟต์แวร์ ดังนี้

1. Text Editor สำหรับระบบปฏิบัติการ Windows สามารถใช้ Notepad และอาจจะใช้ vim หรือ vi ที่สามารถใช้บน Windows, Linux หรือ Unix ได้เป็นอย่างดี

2. Lua Interpreter เป็นโปรแกรมขนาดเล็กที่สามารถรันคำสั่งของลัวได้ทันทีและหยุดการทำงานของไฟล์โปรแกรมลัวได้เมื่อพบข้อผิดพลาด ซึ่งแตกต่างจากการใช้คอมไพเลอร์

3. Lua Compiler ใช้สำหรับคอมไพล์โปรแกรมให้ทำงานเป็นส่วนขยายร่วมกับโปรแกรมหรือภาษาอื่น

IDE สำหรับเขียนโปรแกรมภาษา Lua ลัว

Windows ให้ใช้โปรแกรม SciTE ดาวน์โหลดมาติดตั้งได้จาก https://code.google.com/p/luaforwindows แล้วไปที่แท็บ Download จากนั้นให้ติดตั้งโปรแกรม แล้วสามารถเขียนโค้ดโปรแกรมและบิ้วโปรแกรมได้ เมื่อติดตั้งแล้วจะมีหน้าตาโปรแกรมดังนี้