ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม November 30, 2018 ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม Kitsana Waiyamai 204111: Introduction to programming
การเขียนโปรแกรม / ซอฟต์แวร์ คือ? การสร้างชุดคำสั่งซึ่งบอกการทำงานเป็นขั้นตอนเพื่อสั่งให้คอมพิวเตอร์ทำงาน และให้ผลลัพธ์ตามคำสั่งนั้น โดยคำสั่งนี้เขียนอยู่ในรูปแบบของภาษาคอมพิวเตอร์
Computer Languages ยุคของภาษาคอมพิวเตอร์ มีทั้งหมด 5 ยุค คือ November 30, 2018 Computer Languages ยุคของภาษาคอมพิวเตอร์ มีทั้งหมด 5 ยุค คือ ภาษาเครื่อง ภาษาแอสเซมบลี ภาษาระดับสูง ภาษาระดับสูงมาก ภาษาธรรมชาติ Kitsana Waiyamai 204111: Introduction to programming
ยุคที่ 1 ภาษาเครื่อง กำเนิดมาพร้อมกับคอมพิวเตอร์ November 30, 2018 ยุคที่ 1 ภาษาเครื่อง กำเนิดมาพร้อมกับคอมพิวเตอร์ เป็นภาษาที่เครื่องเข้าใจได้ โดยตรง เป็นที่มาของคำว่า code ซึ่งปัจจุบันหมายถึง ข้อความที่ประกอบขึ้นเป็นโปรแกรมในภาษาใด ๆ (program text) เป็นภาษาระดับต่ำ มนุษย์ทำความเข้าใจได้ยาก ทำงานเร็ว ตัวอย่างบางส่วนของโค้ด 00000010101111001010 00000010111111001000 00000011001110101000 บวกเลขในตำแหน่งที่ 10 กับเลขในตำแหน่งที่ 11 แล้วเก็บผลลัพธ์ไว้ในตำแหน่งที่ 12 Kitsana Waiyamai 204111: Introduction to programming
ยุคที่ 2 ภาษาสัญลักษณ์ Program November 30, 2018 ยุคที่ 2 ภาษาสัญลักษณ์ Program 1: M[0] := 0; 2: read(M[1]) 3: if M[1] > 0 then goto 5 4: goto 7 5: M[3] := M[0] - M[1]; 6: if M[3] > then goto 16 7: writeln(M[1]) 8: read(M[2]) 9: M[3] := M[2] - M[1]; 10: if M[3] > then goto 12 …. 16: halt เนื่องจากภาษาเครื่องเข้าใจยาก และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose) สร้างภาษา Assembly โดยใช้สัญลักษณ์และชื่อแทนโค้ดจริง เป็นภาษาระดับต่ำที่อ่านเข้าใจได้ง่ายขึ้น เป็นภาษาที่ขึ้นอยู่กับเครื่อง Machine address A program = sequence of instructions - assignment - input/output - control flow input file = sequence of value by read instructions output file = sequence of value by write instructions Execution begin with first instruction flows from one to the next except goto, if Kitsana Waiyamai 204111: Introduction to programming
1:1 Assembly code Assembler Object code November 30, 2018 Kitsana Waiyamai 204111: Introduction to programming
ยุคที่ 3 ภาษาระดับสูง ใช้สัญลักษณ์ที่คุ้นเคยและอ่านเข้าใจง่าย November 30, 2018 ยุคที่ 3 ภาษาระดับสูง ใช้สัญลักษณ์ที่คุ้นเคยและอ่านเข้าใจง่าย สามารถนำโปรแกรมไปรันบนเครื่องที่ต่างกันโดยทำการ แก้ไขโค้ดเล็กน้อยหรือไม่ต้องแก้ไขเลย (portability / machine independence) มีชุดคำสั่งโปรแกรมให้ใช้ (program libraries) มีการตรวจสอบข้อผิดพลาด (error) ในช่วงที่ทำการเขียน (implementation) Fortran is the first high level language. Unix orginally written in assembly was rewrite in C in 1973. - new users and programs - readability - portabiliy Kitsana Waiyamai 204111: Introduction to programming
November 30, 2018 ภาษายุคที่ 3 เป็นภาษาแรกที่มีใช้คำสั่งคล้ายกับประโยคในภาษาอังกฤษ ทำให้ใช้งานง่ายกว่าภาษาในยุคก่อน มีคุณสมบัติ portable ทำให้สามารถนำ object code ที่สร้าง (compile) จากระบบหนึ่งไปใช้ระบบที่ต่างกันได้ ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ Basic, Cobol, Pascal, C Kitsana Waiyamai 204111: Introduction to programming
ภาษายุคที่ 4 ภาษาระดับสูงมาก November 30, 2018 ภาษายุคที่ 4 ภาษาระดับสูงมาก เป็นภาษาเหมาะกับงานเฉพาะด้านและใช้งานง่ายกว่า 3GL ใช้ลักษณะ text-based environment (คล้าย 3GL) โปรแกรมเมอร์สามารถใช้ visual environment ได้โดยใช้เครื่องมือทางด้านกราฟิก ทำให้สร้าง Prototype หรือ GUIของโปรแกรมได้รวดเร็ว ส่วนใหญ่เป็นโปรแกรมที่รวบรวมการจัดการฐานข้อมูลด้วย ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ Visual C++, Delphi, Visual Basic, JAVA, C# Kitsana Waiyamai 204111: Introduction to programming
ภาษายุคที่ 5 ภาษาธรรมชาติ November 30, 2018 ภาษายุคที่ 5 ภาษาธรรมชาติ เป็นภาษาที่รวมเอาปัญญาประดิษฐ์ (Artificial Intelligence) และระบบผู้เชี่ยวชาญ (Expert Systems) มาใช้ในการสร้างโปรแกรม? ระบบคิดและมีส่วนร่วมในการตัดสินใจของผู้ใช้? เป็นการหาคำตอบ, คำแนะนำที่เหมาะสำหรับคำถามที่ผู้ใช้ป้อน? ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ Lisp, Prolog Kitsana Waiyamai 204111: Introduction to programming
Language translator Hello World! _ …… Machine language Interpreter / Compiler …… main: pushl %ebp movl %esp, %ebp subl $8, %esp andl $-16, %esp movl $0, %eax subl %eax, %esp pushl $.LC0 …….. …. 00011000110001110 00110001110101111 00011111111110001 11011100001011011 …… Assembler class MainClass { public static void Main(string[] args) Console.WriteLine("Hello World!"); } Machine Machine language High-level language Assembly language Hello World! _
The translation Process Compiler Executable Program Source Program
Compiler อ่านทั้งโปรแกรมในครั้งเดียว แปลงให้เป็นไฟล์ที่สามารถใช้งานได้ (machine language) library Compiler Linker …. writeln(‘a’); writeln(‘b’); writeln(‘c’); object file Source a b c …. 0100100 0100101 0100101 ..... Exe file
Interpretation Method Process Source Program Interpreter (on computer) Output
Interpreter อ่านภาษาระดับสูง แปลคำสั่ง แล้วทำงานตามคำสั่งนั้นๆ ทำตามด้านบนทีละคำสั่ง Inter- preter a b c …. writeln(‘a’); writeln(‘b’); writeln(‘c’); 0100100 0100101 0100110 Source
กระบวนการพัฒนาโปรแกรม November 30, 2018 กระบวนการพัฒนาโปรแกรม การวิเคราะห์ความต้องการ / นิยามปัญหา (Needs analysis) การออกแบบระบบ (System Design) การดำเนินการ / พัฒนา (Development) การนำไปใช้ (Implementation) การบำรุงรักษา (Maintenance) Kitsana Waiyamai 204111: Introduction to programming