ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม April 4, 2017 ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม Kitsana Waiyamai 204111: Introduction to programming
Computer & Program Computers Program April 4, 2017 Computer & Program Computers อุปกรณ์ที่ใช้เพื่อการคำนวณด้วยความเร็วสูงและถูกต้องเที่ยงตรง อุปกรณ์ซึ่งสามารถถูกสั่งงาน(โปรแกรม)ให้ทำงานได้ตามต้องการ สามารถเก็บและเรียกข้อมูลจำนวนมากได้อย่างรวดเร็ว ประกอบด้วยองค์ประกอบทีมองเห็นจับต้องได้เรียกว่า ฮาร์ดแวร์ (Hardware) Program กลุ่มของชุดคำสั่งเพื่อให้คอมพิวเตอร์ปฏิบัติตาม โดยจะถูกเขียนขึ้นโดยใช้ภาษาสำหรับการโปรแกรมโดยเฉพาะ Kitsana Waiyamai 204111: Introduction to programming
ข้อมูลในระบบคอมพิวเตอร์ ลักษณะของข้อมูลจะเป็นบิต (Bit) มาประกอบกัน ข้อมูล 1 บิตมีเพียงสองสถานะ ใช้สัญลักษณ์ 1 หรือ 0 แทน ซึ่งตรงกับเลขฐานสอง (Binary number) โดยทั่วไปข้อมูลหนึ่งตัวอักษร (Character) หรือเรียกว่า 1 ไบต์(Byte) นั้นประกอบด้วยข้อมูล 8 บิต ดังนั้นข้อมูล 1 ไบต์มีความแตกต่างกัน 28 หรือ 256 แบบ
ข้อมูลในระบบคอมพิวเตอร์ ข้อมูลในคอมพิวเตอร์จะถูกเก็บอยู่ในรูปของ bit bit = binary digit (เลขฐานสอง) มีค่าเป็น 0 หรือ 1 (ตามสถานะของไฟฟ้า) byte = 8 bits ข้อมูล 1 byte ในเครื่องคอมพิวเตอร์อาจจะมีความหมายแทนข้อมูลได้หลากหลายประเภท ตัวอย่างเช่น ข้อมูล 1 byte เก็บค่าดังนี้ 011000012 ข้อมูลดังกล่าวอาจจะแทนอักขระ ‘a’ หรือแทนตัวเลข 97 ก็ได้ ขึ้นอยู่กับโปรแกรมคอมพิวเตอร์ ว่าจะตีค่า 1 byte นั้นเป็นอะไร
โปรแกรม / ซอฟต์แวร์ คือ? กลุ่มคำสั่งซึ่งบอกการทำงานเป็นขั้นตอนเพื่อสั่งให้คอมพิวเตอร์ทำงาน และให้ผลลัพธ์ตามคำสั่งนั้น โดยคำสั่งนี้เขียนอยู่ในรูปแบบของภาษาคอมพิวเตอร์
ชนิดของซอฟต์แวร์ ซอฟต์แวร์ระบบ ระบบปฏิบัติการ (OS) ซอฟต์แวร์จัดการอุปกรณ์ต่อพ่วง (Device Driver) ซอฟต์แวร์ประยุกต์ โปรแกรมสำเร็จรูป โปรแกรมที่พัฒนาขึ้นเอง
คอมพิวเตอร์จะทำงานกับภาษาเครื่องเท่านั้น April 4, 2017 Computer Languages กลุ่มของภาษาคอมพิวเตอร์: ภาษาเครื่อง Machine language รหัสไบนารี Binary Code ภาษาแอสเซมบลีAssembly language ภาษาระดับสูง High-Level Language คล้ายคลึงกับภาษามนุษย์ ไม่ยึดติดกับ hardware เคลื่อนย้ายได้ ตัวอย่าง: Pascal, C, C++, C#, Java, Fortran, VB คอมพิวเตอร์จะทำงานกับภาษาเครื่องเท่านั้น Kitsana Waiyamai 204111: Introduction to programming
ภาษาเครื่อง กำเนิดมาพร้อมกับคอมพิวเตอร์ April 4, 2017 ภาษาเครื่อง กำเนิดมาพร้อมกับคอมพิวเตอร์ เป็นภาษาที่เครื่องเข้าใจได้ โดยตรง เป็นที่มาของคำว่า code ซึ่งปัจจุบันหมายถึง ข้อความที่ประกอบขึ้นเป็นโปรแกรมในภาษาใด ๆ (program text) เป็นภาษาระดับต่ำ มนุษย์ทำความเข้าใจได้ยาก ทำงานเร็ว ตัวอย่างบางส่วนของโค้ด 00000010101111001010 00000010111111001000 00000011001110101000 บวกเลขในตำแหน่งที่ 10 กับเลขในตำแหน่งที่ 11 แล้วเก็บผลลัพธ์ไว้ในตำแหน่งที่ 12 Kitsana Waiyamai 204111: Introduction to programming
ภาษาสัญลักษณ์ Program April 4, 2017 ภาษาสัญลักษณ์ 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 April 4, 2017 Kitsana Waiyamai 204111: Introduction to programming
High-Level Languages Procedural Language Object-Oriented Language Fortran Cobol Basic C Pascal Object-Oriented Language C++, Java, C#, VB Functional Language Lisp Logic Language Prolog
ภาษาระดับสูง ใช้สัญลักษณ์ที่คุ้นเคยและอ่านเข้าใจง่าย April 4, 2017 ภาษาระดับสูง ใช้สัญลักษณ์ที่คุ้นเคยและอ่านเข้าใจง่าย สามารถนำโปรแกรมไปรันบนเครื่องที่ต่างกันโดยทำการ แก้ไขโค้ดเล็กน้อยหรือไม่ต้องแก้ไขเลย (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
ยุคของภาษาคอมพิวเตอร์ ภาษายุคที่ 1 เป็นภาษาเครื่อง ที่คำสั่งเป็นเลข 0,1 ภาษายุคที่ 2 เป็นภาษาสัญลักษณ์ หรือภาษาแอสแซมบลี ตัวอย่างคำสั่ง MOV BH,30
April 4, 2017 ภาษายุคที่ 3 เป็นภาษาแรกที่มีใช้คำสั่งคล้ายกับประโยคในภาษาอังกฤษ ทำให้ใช้งานง่ายกว่าภาษาในยุคก่อน มีคุณสมบัติ portable ทำให้สามารถนำ object code ที่สร้าง (compile) จากระบบหนึ่งไปใช้ระบบที่ต่างกันได้ ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ FORTAN C COBOL C++ BASIC Java Pascal ActiveX Kitsana Waiyamai 204111: Introduction to programming
ภาษายุคที่ 4 เป็นภาษาเหมาะกับงานเฉพาะด้านและใช้งานง่ายกว่า 3GL April 4, 2017 ภาษายุคที่ 4 เป็นภาษาเหมาะกับงานเฉพาะด้านและใช้งานง่ายกว่า 3GL ใช้ลักษณะ text-based environment (คล้าย 3GL) โปรแกรมเมอร์สามารถใช้ visual environment ได้โดยใช้เครื่องมือทางด้านกราฟิก ทำให้สร้าง Prototype หรือ GUIของโปรแกรมได้รวดเร็ว ส่วนใหญ่เป็นโปรแกรมที่รวบรวมการจัดการฐานข้อมูลด้วย ภาษาที่อยู่ในกลุ่มนี้ ได้แก่ Visual Basic (VB) VisualAge Authoring environments Kitsana Waiyamai 204111: Introduction to programming
April 4, 2017 ภาษายุคที่ 5 เป็นภาษาที่รวมเอาปัญญาประดิษฐ์ (Artificial Intelligence) และระบบผู้เชี่ยวชาญ (Expert Systems) มาใช้ในการสร้างโปรแกรม? ระบบคิดและมีส่วนร่วมในการตัดสินใจของผู้ใช้? เป็นการหาคำตอบ, คำแนะนำที่เหมาะสำหรับคำถามที่ผู้ใช้ป้อน? 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
กระบวนการพัฒนาโปรแกรม April 4, 2017 กระบวนการพัฒนาโปรแกรม การวิเคราะห์ความต้องการ / นิยามปัญหา (Needs analysis) การออกแบบระบบ (System Design) การดำเนินการ / พัฒนา (Development) การนำไปใช้ (Implementation) การบำรุงรักษา (Maintenance) Kitsana Waiyamai 204111: Introduction to programming