วันอาทิตย์ที่ 17 กรกฎาคม พ.ศ. 2554

ภาษาโปรแกรม

                                                ภาษาโปรแกรม

        ภาษาโปรแกรม คือภาษาประดิษฐ์ที่สามารถใช้ควบคุมกำหนดพฤติกรรมการทำงานของเครื่องจักรได้ โดยเฉพาะคอมพิวเตอร์ ภาษาโปรแกรมก็เหมือนภาษามนุษย์ที่จะต้องใช้วากยสัมพันธ์ (syntax) และความหมาย (semantic) เพื่อกำหนดโครงสร้างและตีความหมายตามลำดับ ภาษาโปรแกรมช่วยให้การสื่อสารในภารกิจสารสนเทศสะดวกมากขึ้นและถูกต้องแม่นยำ ตามขั้นตอนวิธี (algorithm) ในโลกนี้มีภาษาโปรแกรมมากกว่า 8,500 ภาษาที่แตกต่างกันไป[1] และก็ยังมีภาษาใหม่เกิดขึ้นทุกๆ ปี ผู้ที่ใช้งานภาษาโปรแกรมเพื่อเขียนโปรแกรมเรียกว่า โปรแกรมเมอร์ (programmer) ลักษณะของภาษาโปรแกรม
ชนิดข้อมูล    
    การจัดเก็บข้อมูลภายในคอมพิวเตอร์สมัยใหม่นั้น ภายในแล้วจะเก็บเป็นตัวเลขศูนย์และหนึ่ง (เลขฐานสอง) อย่างไรก็ตาม ข้อมูลมักถูกแทนสารสนเทศในชีวิตประจำวันเช่น ชื่อบุคคล เลขบัญชี หรือผลการวัด ดังนั้นข้อมูลแบบฐานสองจะถูกจัดการโดยภาษาโปรแกรม เพื่อทำให้รองรับการจัดเก็บข้อมูลที่ซับซ้อนขึ้นเหล่านี้
ระบบที่ข้อมูล ถูกจัดการภายในโปรแกรมเรียกว่าชนิดข้อมูลของภาษาโปรแกรม การออกแบบและศึกษาเกี่ยวกับชนิดข้อมูลเรียกว่าทฤษฎีชนิด ภาษาโปรแกรมสามารถจัดออกได้เป็นกลุ่มภาษาที่มี การจัดชนิดแบบสถิตย์ และภาษาที่มี การจัดชนิดแบบพลวัติ

โครงสร้างข้อมูล     

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

ภาษาเครื่อง (Machine Languages)เป็นภาษาหรือคำสั่งที่ใช้้ในการสั่งงานหรือติดต่อกับเครื่องโดยตรง ลักษณะสำคัญของ
ภาษาเครื่องจะประกอบด้วยรหัสของเลขฐานสองซึ่งเทียบได้กับลักษณะของสัญญาณทางไฟฟ้าเข้ากับหลักการ      ทำงาานของเครื่องสามารถเข้าใจและพร้อมที่จะทำงานตามคำสั่งได้ทันที ภาษาเครื่องจะมีกฎเกณฑ์ทางไวยากรณ์ค่อนข้างจำกัด
       โปรแกรมมีลักษณะค่อนข้างยุ่งยากซับซ้อน รหัสโครงสร้างของแต่ลำคำสั่งของภาษาเครื่องจะประกอบด้วยส่วนสำคัญ 2 ส่วนคือ

         1. รหัสบอกประเภทของคำสั่ง (Operation Code หรือ Op-Code) เป็นส่วนที่บอกคำสั่งให้เครื่องทำการประมวลผล เช่น ให้ทำการบวก ลบ คูณ หาร หรือเปรียบเทียบ
         2. รหัสบอกตำแหน่งข้อมูล (Operand) เป็นส่วนที่บอกว่าข้อมูลที่จะนำมาประมวลผลนั้นเก็บอยู่ในตำแหน่ง (Address) ใดของหน่วยความจำ
      ลักษณะของโปรแกรมจะประกอบด้วยกลุ่มของรหัสคำสั่งซึ่งประกอบด้วยเลขฐานสองเรียงต่อกัน ซึ่งผู้เขียนโปรแกรมจะต้องทราบเทคนิคการใช้รหัสคำสั่งและจะต้องจำตำแหน่งของคำสั่งและข้อมูลที่ถูกเก็บไว้ เพราะเนื่องจากเครื่องคอมพิวเตอร์แต่ละบริษัทจะใช้ภาษาเครื่องของตนเอง
และผู้เขียนโปรแกรมจะต้องเข้าใจระบบการทำงานของเครื่องเป็นอย่างดี

      
 ข้อดี ของภาษาเครื่อง
        1.เมื่อคำสั่งเข้าสู่เครื่องจะสามารถทำงานได้ทันที
        2.สามารถสร้างคำสั่งใหม่ ๆ ได้ โดยที่ภาษาอื่นทำไม่ได้
        3.ต้องการหน่วยความจำเพียงเล็กน้อย

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


ภาษาระดับต่ำ ในทางคอมพิวเตอร์ หมายถึง ภาษาที่อิงกับสถาปัตยกรรมคอมพิวเตอร์ใดสถาปัตยกรรมหนึ่ง ซึ่งไมโครโพรเซสเซอร์แต่ละรุ่น หรือ แต่ละตระกูล ก็มักมีภาษาระดับต่ำที่แตกต่างกัน และโดยปกติแล้ว หนึ่งคำสั่งในภาษาระดับต่ำ จะหมายถึงการสั่งงานคอมพิวเตอร์ให้ทำงานหนึ่งอย่าง (1 instruction = 1 operation) ภาษาระดับต่ำ มี 2 ภาษา คือ
      1. ภาษา เครื่อง เป็นภาษาเดียวที่ไมโครโพรเซสเซอร์สามารถเข้าใจ คำสั่งเป็นตัวเลขล้วน ๆ การอ่านและเขียนอาจต้องใช้เครื่องมือพิเศษ จึงไม่ค่อยมีการใช้ภาษาเครื่องโดยตรง
      2. ภาษาแอสเซมบลี เป็นการปรับภาษาเครื่องให้สามารถเขียนได้สะดวกขึ้นโดยการพิมพ์คำสั่งที่เป็น ตัวอักษรแทนตัวเลข เวลาเขียนเสร็จ จะต้องใช้ตัวแปลโปรแกรมจึงจะใช้งานได้ และถึงแม้ว่าไม่ใช้ภาษาเครื่องโดยตรง ผู้เขียนโปรแกรมยังจำเป็นต้องเข้าใจโครงสร้างของไมโครโพรเซสเซอร์ที่กำลัง เขียนเป็นอย่างดี

ภาษาแอสเซมบลี (Assembly Language) หมายถึง ภาษาที่ใช้ในการเขียนโปรแกรมภาษาหนึ่งซึ่งจะทำงานโดยขึ้นกับรุ่นของไมโครโพรเซสเซอร์ หรือ "หน่วยประมวลผล" (CPU) ของเครื่องคอมพิวเตอร์
       จำเป็นต้องผ่านการแปลภาษาด้วยคอมไพเลอร์เฉพาะเรียกว่า แอสเซมเบลอร์ (assembler) ให้อยู่ในรูปของรหัสคำสั่งก่อน (เช่น .OBJ) โดยปกติ ภาษานี้ค่อนข้างมีความยุ่งยากในการใช้งาน และการเขียนโปรแกรมเป็นจำนวนบรรทัดมากมากกว่า เมื่อเปรียบเทียบกับการใช้ภาษาระดับสูง เช่น ภาษา C หรือภาษา BASIC แต่จะทำให้ได้ผลลัพธ์การทำงานของโปรแกรมเร็วกว่า และขนาดของตัวโปรแกรมมีขนาดเนื้อที่น้อยกว่าโปรแกรมที่สร้างจากภาษาอื่นมาก จึงนิยมใช้ภาษานี้เมื่อต้องการประหยัดเวลาทำงานของเครื่องคอมพิวเตอร์ และเพิ่มประสิทธิภาพของโปรแกรม

ภาษาระดับสูง (High Level Language) เป็นภาษาที่ใช้ง่ายขึ้นกว่าภาษาสัญลักษณ์ โดยผู้คิดค้นภาษาได้ออกแบบ คำสั่ง ไวยากรณ์ และกฎเกณฑ์ต่างๆ ออกมาให้รัดกุม และจำได้ง่าย ภาษาระดับสูงนี้ยังอาจจะแบ่งออกได้เป็นหลายประเภท เช่น ประเภทที่เหมาะกับงานวิทยาศาสตร์และวิศวกรรมศาสตร์ได้แก่ ภาษา Fortran ภาษา BASIC ภาษา PASCALภาษา C ประเภทที่เหมาะกับงานธุรกิจได้แก่ ภาษา COBOL ภาษา RPGประเภทที่เหมาะกับงานควบคุมเครื่องคอมพิวเตอร์เอง ได้แก่ ภาษา C โปรแกรมที่จัดทำขึ้นโดย ใช้ภาษาระดับนี้ก็เช่นเดียวกับโปรแกรมภาษาสัญลักษณ์คือ จะต้องใช้ตัวแปลภาษาแปลให้เป็นโปรแกรมภาษาเครื่องก่อน คอมพิวเตอร์จึงจะเข้าใจและทำงานให้ได้

ภาษาซี (C programming language) เป็นภาษาโปรแกรมเชิงโครงสร้างระดับสูงที่ได้รับการพัฒนาขึ้นในช่วงทศวรรษ 1970 โดย เคน ธอมป์สัน (Ken Thompson) และ เดนนิส ริทชี่ (Dennis Ritchie) ขณะทำงานอยู่ที่ เบลล์เทเลโฟน เลบอราทอรี่ สำหรับใช้ในระบบปฏิบัติการยูนิกซ์ ต่อมาภายหลังได้ถูกนำไปใช้กับระบบปฏิบัติการอื่น ๆ และกลายเป็นภาษาโปรแกรมหนึ่งที่ใช้กันแพร่หลายมากที่สุด ภาษาซีมีจุดเด่นที่ประสิทธิภาพในการทำงาน เนื่องจากมีความสามารถใกล้เคียงกับภาษาระดับต่ำ แต่เขียนแบบภาษาระดับสูง โปรแกรมคอมพิวเตอร์ที่เขียนด้วยภาษาซีจึงทำงานได้รวดเร็ว ภาษาซีเป็นภาษาโปรแกรมที่นิยมใช้กันมากสำหรับพัฒนาระบบปฏิบัติการ,ซอฟต์แวร์ระบบ , ควบคุมไมโครคอนโทรลเลอร์ และเป็นภาษาที่ใช้กันทั่วไปในหลักสูตรวิทยาการคอมพิวเตอร์
ตัวอย่างโปรแกรมที่เขียนด้วยภาษาซีี        
#include <stdio.h>
 int main(void)
 {
printf("hello, world\n");
return 0;
}

ภาษาซีพลัสพลัส (C++ programming language) เป็นภาษาโปรแกรมคอมพิวเตอร์อเนกประสงค์ มีโครงสร้างภาษาที่มีการจัดชนิดข้อมูลแบบสแตติก (statically typed) และสนับสนุนรูปแบบการเขียนโปรแกรมที่หลากหลาย (multi-paradigm language) ได้แก่ การโปรแกรมเชิงกระบวนคำสั่ง, การนิยามข้อมูล, การโปรแกรมเชิงวัตถุ, และการโปรแกรมแบบเจเนริก (generic programming) ภาษาซีพลัสพลัสเป็นภาษาโปรแกรมเชิงพาณิชย์ที่นิยมมากภาษาหนึ่งนับตั้งแต่ ช่วงทศวรรษ 1990Bjarne Stroustrup จากห้องวิจัยเบลล์ (Bell Labs) เป็นผู้พัฒนาภาษา C++ ขึ้น (เดิมใช้ชื่อ "C with classes") ในปีค.ศ. 1983 เพื่อพัฒนาภาษาซีดั้งเดิม สิ่งที่พัฒนาขึ้นเพิ่มเติมนั้นเริ่มจากการเพิ่มเติมการสร้างคลาสจากนั้นก็ เพิ่มคุณสมบัติต่าง ๆ ตามมา ได้แก่ เวอร์ชวลฟังก์ชัน การโอเวอร์โหลดโอเปอเรเตอร์ การสืบทอดหลายสาย เท็มเพลต และการจัดการเอ็กเซ็พชัน มาตรฐานของภาษาซีพลัสพลัสได้รับการรับรองในปีค.ศ. 1998 เป็นมาตรฐาน ISO/IEC 14882:1998 เวอร์ชันล่าสุดคือเวอร์ชันในปีค.ศ. 2003 ซึ่งเป็นมาตรฐาน ISO/IEC 14882:2003 ในปัจจุบันมาตรฐานของภาษาในเวอร์ชันใหม่ (รู้จักกันในชื่อ C++0x) กำลังอยู่ในขั้นพัฒนา
#include <iostream>
int main()
{
std::cout << "hello, world\n";
}

ภาษา ซีชาร์ป (C# Programming Language) เป็นภาษาโปรแกรมเชิงวัตถุทำงานบนดอตเน็ตเฟรมเวิร์ก พัฒนาโดยบริษัทไมโครซอฟท์และมีAnders Hejlsbergเป็นหัวหน้าโครงการ โดยมีรากฐานมาจากภาษาซีพลัสพลัสและภาษาอื่นๆ โดยปัจจุบันภาษาซีซาร์ปเป็นภาษามาตรฐานรองรับโดย ECMA และ ISO

ภาษา ปาสกาล (Pascal programming language) เป็นภาษาโปรแกรมที่ใช้กันอย่างกว้างขวาง โดยเฉพาะในวงการศึกษา คิดค้นขึ้นโดย นิเคลาส์ แวร์ท (Niklaus Wirth) นักวิทยาศาสตร์คอมพิวเตอร์ชาวสวิตเซอร์แลนด์ ในปี ค.ศ. 1970 เพื่อช่วยในการเรียนการสอนการเขียนโปรแกรมโครงสร้าง (structured programming). ภาษาปาสกาลนั้นพัฒนาขึ้นมาจาก ภาษาอัลกอล (Algol), และชื่อปาสกาลนั้น ตั้งเพื่อเป็นเกียรติแก่ แบลส ปาสกาล (en:Blaise Pascal). นอกเหนือจากภาษาปาสกาลแล้ว, แวร์ทได้พัฒนา ภาษาโมดูลาทู (Modula-2) และ โอบีรอน (Oberon) ซึ่งมีโครงสร้างคล้ายกับภาษาปาสกาล แต่สามารถรองรับการเขียนโปรแกรมเชิงวัตถุ (object-oriented programming).
 โครงสร้างอย่างง่าย        
   โปรแกรมภาษาปาสกาลทุกอัน จะเริ่มต้นด้วยคีย์เวิร์ด Program และส่วนของโค้ดจะอยู่ระหว่างคีย์เวิร์ด Begin และ End ภาษาปาสกาลนั้นไม่สนใจความแตกต่างระหว่างตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก ("end" มีผลเท่ากับ "End"). เซมิโคลอน (;) ใช้เมื่อจบคำสั่ง และ จุลภาค (.) ใช้เมื่อจบโปรแกรม (หรือยูนิต)
      ปัจจุบันมาตรฐานของภาษาจาวาดูแลโดย Java Community Process ซึ่งเป็นกระบวนการอย่างเป็นทางการ ที่อนุญาตให้ผู้ที่สนใจเข้าร่วมกำหนดความสามารถในจาวาแพลตฟอร์มได้
  จุดมุ่งหมายหลัก 4 ประการ ในการพัฒนาจาวา คือ
    - ใช้ภาษาโปรแกรมเชิงวัตถุ
    - ไม่ขึ้นกับแพลตฟอร์ม (สถาปัตยกรรม และ ระบบปฏิบัติการ) ถูกนำไปใช้ในโปรแกรมสำหรับปัญญาประดิษฐ์ และภาษาศาสตร์เชิงคำนวณ (computational linguistics) โดยเฉพาะการประมวลผลภาษาธรรมชาติ ไวยากรณ์และความหมายของภาษานั้นเรียบง่ายและชัดเจน (เป้าหมายแรกของภาษาคือเป็นเครื่องมือสำหรับนักภาษาศาสตร์ที่ไม่รู้ คอมพิวเตอร์) งานวิจัยจำนวนมากที่ทำให้เกิดการพัฒนาภาษาโปรล็อกในปัจจุบันนั้น เป็นผลมาจากโครงการระบบคอมพิวเตอร์ยุคที่ห้า (fifth generation computer systems project - FGCS) ซึ่งเลือกรูปแบบหนึ่งของภาษาโปรล็อกเป็นภาษาแก่น (Kernel Language) ของระบบปฏิบัติการ
    - เหมาะกับการใช้ในระบบเครือข่าย พร้อมมีไลบรารีสนับสนุน
    - เรียกใช้งานจากระยะไกลได้อย่างปลอดภัย
       โดย ภาษาจาวานั้น คือภาษาโปรแกรมอย่างนึง ดังที่ได้อธิบายไปข้างต้น ส่วน จาวาแพลตฟอร์มนั้น คือสภาพแวดล้อมสำหรับการใช้งานโปรแกรมจาวา โดยมีองค์ประกอบหลักคือ จาวาเวอร์ชวลแมชีน (Java virtual machine) และ ไลบรารีมาตรฐานจาวา (Java standard library)
โปรแกรมที่ทำงานบนจาวาแพลตฟอร์มนั้น ไม่จำเป็นจะต้องสร้างด้วยภาษาจาวา เช่น อาจจะใช้ ภาษาไพธอน (Python) หรือ ภาษาอื่นๆ ก็ได้

ภาษาโปรล็อก (Prolog) เป็นภาษาสำหรับการเขียนโปรแกรมเชิงตรรกะ ได้ชื่อมาจาก PROgrammation en LOGique (logic programming) สร้างขึ้นโดย Alain Colmerauer ราว ค.ศ. 1972 ภาษาโปรล็อกเกิดจากความพยายามที่จะสร้างภาษาที่อาศัยวิธีการทางตรรกศาสตร์ แทนที่จะกำหนดคำสั่งอย่างละเอียดให้กับคอมพิวเตอร์    
        พื้นฐานมาจากแคลคูลัสภาคแสดง (predicate calculus) หรือเรียกเต็ม ๆ ว่า แคลคูลัสภาคแสดงอันดับที่หนึ่ง (first-order predicate calculus) โดยจำกัดให้ใช้เฉพาะอนุประโยคของฮอร์น (Horn clause) การดำเนินการของโปรแกรมโปรล็อก ก็คือการประยุกต์วิธีพิสูจน์ทฤษฎีบทโดยใช้รีโซลูชันอันดับหนึ่ง (first-order resolution) แนวคิดพื้นฐานที่เกี่ยวข้องได้แก่ การทำให้เท่ากัน (unification), การเรียกซ้ำจากส่วนท้าย (tail recursion), การย้อนรอย (backtracking)
         แบบชนิดข้อมูล
- อะตอม (atom) คือ ค่าคงที่ซึ่งเขียนแทนด้วยข้อความ โดยอะตอมคือลำดับที่ประกอบด้วย ตัวอักษร ตัวเลข เส้นใต้อักขระ (underscores) และจะต้องขึ้นต้นด้วยตัวพิมพ์เล็ก โดยปกติแล้วถ้าต้องการอะตอมที่ใช้เครื่องหมายพิเศษ จะเขียนเครื่องหมายอัญประกาศเดี่ยว (') กำกับไว้ เช่น '+' เป็น อะตอม แต่ + เป็นตัวดำเนินการ
- ตัวเลขระบบภาษาโปรล็อกส่วนใหญ่จะไม่แบ่งแยกระหว่างเลขจำนวนเต็ม กับเลขจำนวนจริง
- ตัวแปรจะแสดงด้วยสายอักขระที่ประกอบด้วย ตัวอักษร ตัวเลข และเส้นใต้อักษร โดยจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ ตัวแปรในภาษาโปรล็อกไม่ใช่ที่เก็บข้อมูล แต่จะมีลักษณะคล้ายรูปแบบ (pattern) ซึ่งกำหนดไว้ในเรื่องการทำให้เท่ากัน
     ตัวแปรนิรนาม (anonymous variable) จะเขียนโดยใช้ เครื่องหมายเส้นใต้อักษรเพียงตัวเดียว (_)
- พจน์ (term) ใช้แทนข้อมูลที่มีความซับซ้อน ประกอบด้วย ส่วนหัว (head) เป็นอะตอม เรียกว่า ฟังก์เตอร์ (functor) และพารามิเตอร์ต่างๆ (ไม่กำหนดประเภท) จำนวนพารามิเตอร์จะเรียกว่า อะริดี (arity) พจน์สามารถเขียนแทนโดยใช้เพียงส่วนหัวและอะริดี โดยเขียนเป็น ฟังก์เตอร์/อะริตี
- ลิสต์ไม่ใช่ข้อมูลแบบเดี่ยว แต่เป็นโครงสร้างที่นิยามแบบเรียกซ้ำ (โดยใช้พจน์ '.'/2) คือ
  1. อะตอม [] ใช้แทนลิสต์ว่าง
  2. ถ้า T เป็นลิสต์ และ H เป็นส่วนย่อย จะใช้พจน์? '.'(H,T) แทนลิสต์
       ส่วนย่อยแรก เรียกว่าส่วนหัว (H) จะตามด้วยส่วนที่เหลือของลิสต์ ที่เรียกว่าส่วนหาง (T หรือ tail) เช่น ลิสต์ [1,2,3] จะเขียนแทนด้วย '.'(1, '.'(2, 3)) ตามไวยากรณ์ของภาษาแล้วอาจจะเขียนลิสต์ว่า [H|T] วิธีนี้เป็นที่นิยมมากกว่าการใช้ '.' การประมวลผลข้อมูลในลิสต์ จะทำโดยประมวลผลข้อมูลส่วนหัวก่อน แล้วค่อยทำส่วนที่เหลือ โดยใช้การเรียกซ้ำ
ลิสต์สามารถเขียนได้หลายแบบ ตามความสะดวกของโปรแกรมเมอร์
      - เขียนส่วนย่อยทุกตัว: [abc, 1, f(x), Y, g(A,rst)]
      - เขียนส่วนแรกตัวเดียว: [abc | L1]
      - เขียนส่วนแรกหลายตัว: [abc, 1, f(x) | L2]
      - เขียนเป็นการขยายของพจน์: '.'(abc, '.'(1, '.'(f(x), '.'(Y, '.'(g(A,rst), [])))))
- สายอักขระจะเขียนอยู่ในเครื่องหมายอัญประกาศคู่ ซึ่งภายในจะแทนด้วยลิสต์ของรหัสแอสกี
program HelloWorld(input, output);
begin
WriteLn('Hello, World!');
end.



         การ เขียนโปรแกรม (programming) หรือ การเขียนโค้ด (coding) เป็นขั้นตอนการเขียน ทดสอบ และดูแลซอร์สโค้ดของโปรแกรมคอมพิวเตอร์ ซึ่งซอร์สโค้ดนั้นจะเขียนด้วยภาษาโปรแกรม] ขั้นตอนการเขียนโปรแกรมต้องการความรู้ในหลายด้านด้วยกัน เกี่ยวกับโปรแกรมที่ต้องการจะเขียน และอัลกอริทึมที่จะใช้ ซึ่งในวิศวกรรมซอฟต์แวร์นั้น การเขียนโปรแกรมถือเป็นเพียงขั้นหนึ่งในวงจรชีวิตของการพัฒนาซอฟแวร์     การเขียนโปรแกรมถือว่าเป็นการผสมผสานกันระหว่างศาสตร์ของ ศิลปะ วิทยาศาสตร์ คณิตศาสตร์ และ วิศวกรรม เข้าด้วยกัน
 ขั้นตอนการเขียนโปรแกรมหรือพัฒนาโปรแกรม มีขั้นตอนโดยสังเขปดังนี้
    1. วิเคราะห์ปัญหาและความต้องการ (Problem Analysis and Requirement Analysis)
    2. กำหนดและคุณสมบัติของโปรแกรม (Specification)
    3. การออกแบบ (Design)
    4. การโค้ด (Coding)
    5. การคอมไพล์ (Compilation)
    6. การทดสอบ (Testing)
    7. การจัดทำเอกสาร (Documentation)
    8. การเชื่อมต่อ (Integration)
    9. การบำรุงรักษา (Maintenance)

ซอร์สโค้ด (source code) หรืออาจจะเรียกว่า ซอร์ส หรือ โค้ด คือข้อความที่เป็นชุดที่ถูกเขียนขึ้น และสามารถอ่านและเข้าใจได้ ใช้สำหรับภาษาโปรแกรม ในการเขียนโปรแกรมแบบใหม่ ซอร์สโค้ดนิยมเก็บไว้ในไฟล์หลายไฟล์แยกจากกัน เพื่อให้ง่ายในการเรียกใช้ส่วนย่อยของคำสั่งนั้น


ตัวแปลโปรแกรม หรือ คอมไพเลอร์ (compiler) เป็น โปรแกรมคอมพิวเตอร์ที่ทำหน้าแปลงชุดคำสั่งภาษาคอมพิวเตอร์หนึ่ง ไปเป็นชุดคำสั่งที่มีความหมายเดียวกัน ในภาษาคอมพิวเตอร์อื่น
ตัวแปลโปรแกรมส่วนใหญ่ จะทำการแปล รหัสต้นแบบ (source code) ที่เขียนในภาษาระดับสูง เป็น ภาษาระดับต่ำ หรือภาษาเครื่อง ซึ่งคอมพิวเตอร์สามารถที่จะทำงานได้โดยตรง. อย่างไรก็ตาม การแปลจากภาษาระดับต่ำเป็นภาษาระดับสูง ก็เป็นไปได้ โดยใช้ตัวแปลโปรแกรมย้อนกลับ (decompiler)
        ผลลัพธ์ ของการแปลโปรแกรม (คอมไพล์) โดยทั่วไป ที่เรียกว่า ออบเจกต์โค้ด จะประกอบด้วยภาษาเครื่อง ที่เต็มไปด้วยข้อมูลเกี่ยวกับชื่อและสถานที่ของแต่ละจุด และการเรียกใช้วัตถุภายนอก (สำหรับฟังก์ชันที่ไม่ได้อยู่ใน อ็อบเจกต์) สำหรับเครื่องมือที่เราใช้รวม อ็อบเจกต์เข้าด้วยกัน จะเรียกว่าโปรแกรมเชื่อมโยงเพื่อที่ผลลัพธ์ที่ออกมาในขั้นสุดท้าย เป็นไฟล์ที่ผู้ใช้งานทั่วไปสามารถใช้งานได้สะดวก      ตัวแปลภาษาตัวที่สมบูรณ์ตัวแรก คือ ภาษาฟอร์แทรน (FORTRAN) ของ ไอบีเอ็ม

การแปลโปรแกรม
     กระบวน การแปลโปรแกรมแบบอ่านทีเดียวแล้วแปล เครื่องมือที่ใช้แปลโปรแกรมเรียกว่าตัวแปลโปรแกรม การทำงานเริ่มจากตัวแปลโปรแกรมจะอ่านซอร์สโค้ดของภาษานั้นๆ แล้วเริ่มตรวจสอบความผิดพลาด ถ้าพบก็จะแปลโปรแกรมไม่ผ่านและให้ผู้ใช้แก้ไขซอร์สโค้ดก่อน เมื่อคอมไพล์ผ่าน ตัวแปลโปรแกรมก็จะสร้างไฟล์วัตถุ (.obj บนดอสและ .o บนลินุกซ์) ขึ้นมา แล้วตัวแปลโปรแกรมจะทำการเชื่อมโยงแฟ้มข้อมูลวัตถุเข้ากับซอร์สโค้ด และสร้างไฟล์เอ็กซ์คิวต์ (.exe บนดอส) ขึ้นมา
ตรรกศาสตร์
ตรรกศาสตร์ คือมักถูกกล่าวว่าเป็นการศึกษาเกี่ยวกับการโต้แย้ง แต่ความหมายที่แน่นอนของตรรกศาสตร์ก็ยังเป็นเรื่องที่ถกเถียงกันอยู่ในหมู่ นักปรัชญา อย่างไรก็ตาม เนื้อหาวิชานี้ค่อนข้างแน่นอน กล่าวคือ หน้าที่ของนักตรรกศาสตร์ คือการพัฒนาระบบการให้เหตุผล เพื่อทำให้สามารถแยกแยะระหว่างข้อพิสูจน์ที่ดีกับข้อพิสูจน์ที่ผิดพลาดได้

ภาษา เบสิก (BASIC programming language) เป็นภาษาโปรแกรมที่ออกแบบมาให้ใช้งานได้ง่าย และยังได้รับความนิยมมาจนถึงทุกวันนี้ เบสิกออกแบบมาให้ใช้กับคอมพิวเตอร์ตามบ้าน
ชื่อภาษาเบสิก หรือ BASIC ย่อมาจาก Beginner's All-purpose Symbolic Instruction Code ต้องเขียนด้วยตัวพิมพ์ใหญ่เสมอ
ประวัติของภาษา Basic
ภาษา Basic ตัวแรก ถูกคิดค้นเมื่อปี 1963 โดย นาย John Kemery และ นาย Thomas Kurtz ณ Dartmouth College และบรรดานักเรียนนักศึกษาในความดูแลของพวกเขา ซึ่งหลายปีต่อมา ภาษา Basic ฉบับนี้ได้ชื่อเรียกอีกอย่างหนึ่งว่า Dartmouth BASIC

ภาษาฟอร์แทรน (FORTRAN)
ภาษาฟอร์แทรน (FORTRAN - FORmula TRANslation) จัดได้ว่าเป็นภาษาระดับสูงภาษาแรกของโลก พัฒนาในปี ค.ศ. 1954 โดยทีมนักคอมพิวเตอร์ บริษัท ไอบีเอ็ม (IBM) นำทีมโดย จอห์น แบคคัส (John Backus) โดยแนะนำออกมาสองรุ่น คือ FORTRAN II และ FORTRAN IV ต่อมาได้พัฒนาภาษา เป็นมาตรฐานรุ่นแรก เรียกว่า FORTRAN-66 อย่างไรก็ตาม ยังมีข้อบกพร่อง อีกหลายประการ เช่น ไม่สามารถกำหนดชนิดข้อมูล ไม่สามารถทำงานกับ ข้อมูลประเภทสายอักขระ และไม่มีคำสั่งที่สามารถกำหนด โครงสร้างได้เหมาะสม จึงมีการปรับปรุงแก้ไข และออกมาเป็น FORTRAN-77 และ FORTRAN-88 ซึ่งยังมีใช้จนถึงปัจจุบัน
ตัวอย่างโปรแกรม
programme
cc
integer int
int = 12
write(*,*) 'The value of int is',
+ int
end
stop

ภาษา จาวา (Java programming language) เป็นภาษาโปรแกรมเชิงวัตถุ พัฒนาโดย เจมส์ กอสลิง และวิศวกรคนอื่นๆ ที่ ซัน ไมโครซิสเต็มส์ ภาษาจาวาถูกพัฒนาขึ้นในปี พ.ศ. 2534 (ค.ศ. 1991) โดยเป็นส่วนหนึ่งของ โครงการกรีน (the Green Project) และสำเร็จออกสู่สาธารณะในปี พ.ศ. 2538 (ค.ศ. 1995) ซึ่งภาษานี้มีจุดประสงค์เพื่อใช้แทนภาษาซีพลัสพลัส (C++) โดยรูปแบบที่เพิ่มเติมขึ้นคล้ายกับภาษาอ็อบเจกต์ทีฟซี (Objective-C) แต่เดิมภาษานี้เรียกว่า ภาษาโอ๊ก (Oak) ซึ่งตั้งชื่อตามต้นโอ๊กใกล้ที่ทำงานของ เจมส์ กอสลิง แต่ว่ามีปัญหาทางลิขสิทธิ์ จึงเปลี่ยนไปใช้ชื่อ "จาวา" ซึ่งเป็นชื่อกาแฟแทน  



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

แสดงความคิดเห็น