ไฟล์สคริปซ์ประกอบด้วยประโยคคำสั่งไซแลบและฟังก์ชันที่ใช้งานได้ ไฟล์สคริปซ์สามารถเขียนผนึกรวมอยู่ในเอดิเตอร์สำหรับโค๊ดไซแลบ เรียกว่า SciPad. Scipad ถูกเรียกใช้จากเมนูหลักของไซแลบ ผ่านทางเมนู application แล้วเลือกไป Editor. เมื่อไฟล์สคริปซ์สามารถที่จะโหลดเข้าไปในพื้นที่ทำงานไซแลบ (Scilab workspace) จากเมนูหลักของ SciPad ที่ Execute เลือกไปที่ Load into Scilab (ทางลัด keyboard Ctrl + L). โค๊ดจาก SciPad สามารถโหลดเข้ามาในพื้นที่ทำงานไซแลบด้วยคำสั่ง exec('filename.sci'), ได้จัดให้ไฟล์ filename.sci ถูกกำหนดเข้ามาในไดเรคทอรีทำงานล่าสุด เพื่อที่จะโหลดไฟล์ฟังก์ชันในไดเรคทอรีอื่นนอกจากไดเรคทอรีทำงานปัจจุบัน ให้ระบุเส้นทางทั้งหมดให้ไฟล์
รูปที่10.1 ไฟล์สคริปซ์ใน SciPad ถูกโหลดเข้ามาในพื้นที่ทำงานไซแลบ
ก่อนที่ถูกโหลดเข้ามาในพื้นที่ทำงานไซแลบ ไฟล์นั้นจะถูกตรวจสอบไวยากรณ์(syntax) ถ้าโค๊ดมีที่ผิดหลักไวยากรณ์ จะไม่ถูกโหลดเข้าไปในพื้นที่ทำงานไซแลบ แต่จะแสดงข้อความที่ผิดพลาดในหน้าต่างไซแลบ ถ้าไม่มีข้อผิดพลาดใดๆ โค๊ดจะถูกคอมไพล์และโหลดเข้าไปในพื้นที่ทำงานไซแลบ และพร้อมที่จะให้ใช้งานได้ ถ้ามีการเปลี่ยนแปลงโค๊ดใน SciPad, กระบวนการของ Execute แล้วเลือก Load into Scilab จะต้องทำงานซ้ำแบบเดิม เมื่อโค๊ดที่ปรับเปลี่ยนเข้าไปแทนที่โค๊ดที่ผ่านการคอมไพล์มาแล้ว ไซแลบจะแจ้งคำเตือนที่บ่งชี้ให้เห็นว่าฟังก์ชันหนึ่งได้ถูกปรับเปลี่ยนแล้ว
ข้อแตกต่างระหว่างไฟล์สคริปซ์และไฟล์ฟังก์ชัน กล่าวคือไฟล์สคริปซ์ไม่มีส่วนการนิยามฟังก์ชันใดๆ จะมีเฉพาะประโยคคำสั่งไซแลบเป็นหลักสำหรับการนำเข้าข้อมูล การคำนวณ และ เอ้าพุต ผลลัพธ์ของการสั่งปฏิบัติงานไฟล์สคริปซ์จะถูกโหลดเข้ามาในพื้นที่ทำงานไซแลบ และจากนี้เป็นขอบข่ายในภาพรวม(global scope) นั่นคือตัวแปรทั้งหมดที่ได้โหลดเข้ามาจากไฟล์สคริปซ์เป็นตัวแปรโกรบอล และนำมาใช้ได้จากพื้นที่ทำงานไซแลบ ในอีกทางหนึ่งไฟล์ฟังก์ชันหนึ่งๆปกติแล้วประกอบขึ้นด้วยการนิยามฟังก์ชันเท่านั้น และไม่มีประโยคคำสั่งไซแลบที่สามารถสั่งปฏิบัติงานได้โดยตรง เมื่อโหลดเข้าไปในพื้นที่ทำงานไซแลบ เฉพาะโค๊ดที่ถูกโหลดเข้าไป การดำเนินการฟังก์ชันอยู่ในรูปโมดูล ในนั้นมีการแลกเปลี่ยนตัวแปรกับพื้นที่ทำงานไซแลบ หรือฟังก์ชันอื่นเฉพาะเมื่อผ่านทางอาร์กูเมนต์อืนพุตและเอ้าพุต และไม่เข้าใช้พื้นที่ทำงานไซแลบโดยตรง ตัวแปรภายใต้ฟังก์ชัน ตัวแปรภายในฟังก์ชันเป็นแบบโลคอลให้กับฟังก์ชันนอกจากว่า เป็นตัวแปรอืนพุตหรือเอ้าพุต
ที่ไม่เหมือน Matlab หรือ Octave, ไฟล์ฟังก์ชันเดียวอาจประกอบด้วยการนิยามมากกว่าฟังชันเดียว และไม่มีการกำหนดหลักอันเป็นเงื่อนไขในการให้ชื่อไฟล์นอกจากว่าต้องมีส่วนขยายไฟล์เป็น .sci หรือ.sce. ไฟล์ฟังก์ชัน สามารถเขียนโดยใช้เท็กเอดิเตอร์ใดๆเช่น โน้ตแพด และไม่จำเป็นเฉพาะกับ SciPad. แต่ที่ไม่เหมือน SciPad, เอดิเตอร์อื่นๆไม่สามารถโหลดโค๊ดนั้นเข้าไปในพื้นที่ทำงานไซแลบ และจำต้องโหลดเข้ามาด้วยคำสั่ง exec() Matlab และ Octave กำหนดเงื่อนไขให้ชื่อของไฟล์จะต้องเหมือนกับชื่อของฟังก์ชันที่ไฟล์มี ด้วยส่วนขยาย
.m เป็นผลให้แต่ละไฟล์ฟังก์ชันสามารถมีเฉพาะฟังก์ชันเดียว แต่ฟังก์ชันสามารถถูกโหลดเข้ามาโดยอัตโนมัติเข้ามาในพื้นที่ทำงาน เป็นเหมือนเมื่อต้องการแทนที่จะเป็นที่ต้องการให้ถูกโหลดเข้ามาในพื้นที่ทำงานอย่างชัดแจ้ง โดยผู้ใช้ นี่ยอมให้แยกแยะได้ด้วย ถ้าซอร์ทโค๊ดได้รับการปรับเปลี่ยน และคอมไพล์ใหม่ และโหลดฟังก์ชันเข้าไปในพื้นที่ทำงาน ได้ทันที่ (on the fly)เมื่อต้องการ ไฟล์ฟังก์ชันที่จัดระเบียบในโฟลเดอร์ และสามารถบอกได้ว่าโฟลเดอร์ใดที่จะมองหาเมื่อค้นหาสำหรับไฟล์ฟังก์ชันที่ต้องการ ไฟล์สคริปซ์เป็นวิธีการที่ง่ายของการโหลดข้อมูลเข้าไปยังพื้นที่ทำงานไซแลบ และโดยวิธีนี้เป็นเลี่ยงการดำเนินการอ่านไฟล์ นี่เป็นเพราะไฟล์สคริปซ์เข้าไปใช้พื้นที่ทำงานไซแลบโดยตรง และสามารถอ่านข้อมูล และเขียนข้อมูลไปยังพื้นที่ทำงานไซแลบ ขณะที่เป็นเรื่องง่ายที่จะเข้าใจและใช้งาน สามารถที่จะนำไปสู่ข้อผิดพลาดในกรณีที่เป็นชุดข้อมูลและโค๊ดขนาดใหญ่และซับซ้อน ไฟล์ฟังก์ชันไม่ได้เข้าใช้พื้นที่ทำงานไซแลบโดยตรง และดังนั้นการแลกเปลี่ยนข้อมูลผ่านทางพารามีเตอร์อินพุต และเอ้าพุต แนวทางนี้ซับซ็อนกว่าและเป็นโมดูล โดยหลักแล้ว เรายกเลิกความง่ายไปเพื่อแลกกับความเป็นโมดูล ไฟล์ฟังก์ชันมีข้อดีของการแยกจากข้อมูลในพื้นที่ทำงานแบบโกรบอล จากข้อมูลที่ภายในตัวของฟังก์ชัน การทำแบบนี้ช่วยหลีกเลี่ยงข้อผิดพลาดได้ โดยเพิ่มระดับชั้นของความซับซ้อนสำหรับโปรแกรมเมอร์ เนื่องจากข้อจำกัดต่างๆและวิธีการที่กำหนดไว้อย่างดีเป็นวิธีการแลกเปลี่ยนข้อมูล ฟังก์ชันเป็นโมดูลและเซ็ตของการดำเนินการที่ซับซ็อนทำให้เป็นนามธรรมจัดให้เป็นการเรียกใช้ฟังก์ชันเดียว ฟังก์ชันต่างๆ เป็นที่จำเป็นเมื่อเราประสงค์ที่จะสร้างโปรแกรมขนาดใหญ่และซับซ้อน

ไม่มีความคิดเห็น:
แสดงความคิดเห็น