หลักการภาษาชุดคำสั่ง (Principles of programming languages)
เว็บเพจสำรอง (Backup Webpages) : thaiall.com | perlphpasp.com
ปรับปรุง : 2551-07-08 (แก้ไข cygwin)
CPSC 317 หรือ CPSC 214
หลักการภาษาชุดคำสั่ง
ทฤษฎีของการออกแบบ และสร้างภาษา แนวคิดเกี่ยวกับภาษาฟอร์มัล รูปแบบ และคุณลักษณะทางไวยากรณ์เบื้องต้น ชนิด และโครงสร้างของข้อมูล โครงสร้างของการควบคุม และการเคลื่อนที่ของข้อมูล การพิจารณาเวลาในการประมวลผล อัลกอริทึมแบบขนาน การออพติไมซ์ การออกแบบ และสร้างลักษณะต่าง ๆ ของภาษา ลักษณะเฉพาะของภาษาแบบโครงสร้างบล๊อก แบบมอดูลาร์ แบบเชิงวัตถุ ประเภทของภาษาชุดคำสั่ง แบบกำหนดกระบวนการ และแบบไม่กำหนดกระบวนการ การวิเคราะห์ประโยคคำสั่งของภาษาคอมพิวเตอร์ ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ
ภาษาคอมพิวเตอร์ (Computer Language) คือ ภาษาที่ใช้ หรือเกี่ยวข้องกับคอมพิวเตอร์ ซึ่งมักใช้ร่วมกับภาษาโปรแกรม แต่ภาษาคอมพิวเตอร์นั้นมีความหมายที่กว้างกว่า โดยไม่จำเป็นที่จะต้องเป็นภาษาโปรแกรม ซึ่งเป็นที่รู้กันว่าภาษาอย่างHTML หรือ SQL ไม่ใช่ภาษาโปรแกรม แต่ถือว่าเป็นภาษาคอมพิวเตอร์.
ภาษาโปรแกรม (Program Language) คือ วิธีการมาตรฐานในการสื่อสารสำหรับแสดงคำสั่งไปยังคอมพิวเตอร์ ภาษาโปรแกรมกำหนดไวยากรณ์และการตีความหมายจากโปรแกรมคอมพิวเตอร์ที่เขียนขึ้น ภาษาโปรแกรมทำให้โปรแกรมเมอร์สามารถระบุอย่างชัดเจนถึงข้อมูลที่คอมพิวเตอร์จะทำงาน และวิธีการที่คอมพิวเตอร์จะประมวลผลข้อมูลเหล่านั้น
    Principles of Programming Languages
    จุดประสงค์รายวิชา
  1. เข้าใจทฤษฏีของการออกแบบ และสร้างภาษา
  2. เข้าใจแนวคิดเกี่ยวกับฟอร์มัล รูปแบบ และลักษณะทางไวยากรณ์เบื้องต้น
  3. เข้าใจชนิด และโครงสร้างของข้อมูล
  4. เข้าใจโครงสร้างของการควบคุม และการเคลื่อนที่ของข้อมูล
  5. เข้าใจหลักการในการพิจารณาเวลาในการประมวลผล อัลกอริทึมแบบขนาน และการออพติไมซ์
  6. เข้าใจการออกแบบ และสร้างลักษณะต่าง ๆ ของภาษา
  7. เข้าใจลักษณะเฉพาะของภาษาแบบโครงสร้างบล๊อก แบบมอดูลาร์ แบบเชิงวัตถุ
  8. เข้าใจประเภทของภาษาชุดคำสั่ง แบบกำหนดกระบวนการ และไม่กำหนดกระบวนการ
  9. เข้าใจการวิเคราะห์ประโยคคำสั่งของภาษาคอมพิวเตอร์
เอกสาร Power Point
- Introduction33
- Languages18
- Flowchart12
- Transition & Parse Tree7
- Infix to Postfix9
- Language Evaluation Criteria6
- GW-Basic Language14
- COBOL Language12
- Visual Basic Language12
    แผนการสอน (Course Syllabus หรือ Course Outline)
    (ใหม่ ตามคำอธิบายรายวิชา และคณะกรรมการฯ)
  1. วิวัฒนาการ และประวัติของแต่ละภาษา
    กระบวนการแปลภาษา (Compilation Process) มี 5 ขั้นตอน
    1. เลกซิคัล อนาไลเซอร์ (Lexical Analyzer)
    2. ซินแทกซ์ อนาไลเซอร์ (Syntax Analyzer)
    3. ซีแมนติก อนาไลเซอร์ (Semantic Analyzer)
    4. โค้ด ออฟติไมเซอร์ (Code Optimizer)
    5. โค้ด เจนเนอเรเตอร์ (Code Generator)
    # http://www.personal.kent.edu
    # http://en.wikibooks.org
  2. ทฤษฎีของการออกแบบ สร้างภาษา และ การแสดงแบบซอฟต์แวร์
    1. การพิมพ์โปรแกรมต้นฉบับ (Source Listing)
    2. ผังงาน (Flowchart)
    3. ผังงานโปรแกรมโครงสร้าง (Structured Flowchart)
    4. ผังงานแบบ Nassi-Shneiderman
    5. ผังงานแบบ HIPO (Hierarchy plus input-process-output)
    6. ผังงานแจ็คสัน (Jackson Diagram)
    7. ผังงานแบบวาร์นิเอร์-ออร์ (Warnier-Orr Diagram)
    8. ผังงานโครงสร้าง (Structure Chart) ?
    9. คำสั่งลำลอง (Pseudo Code)
    10. ตารางการตัดสินใจ (Decision Table) ?
  3. การออกแบบ และสร้างลักษณะต่าง ๆ ของภาษา
    1. แนวคิดเกี่ยวกับภาษาฟอร์มัล ?
    2. รูปแบบ และคุณลักษณะทางไวยากรณ์เบื้องต้น
    3. ชนิด และโครงสร้างของข้อมูล
    4. โครงสร้างของการควบคุม และการเคลื่อนที่ของข้อมูล
    5. การพิจารณาเวลาในการประมวลผล
    6. อัลกอริทึมแบบบขนาน การออพติไมซ์
  4. ประเภทของภาษาชุดคำสั่ง
    1. แบบกำหนดกระบวนการ
    2. แบบไม่กำหนดกระบวนการ
  5. โครงสร้างภาษาแบบต่าง ๆ
    1. แบบโครงสร้างบล๊อก
    2. แบบมอดูลาร์
    3. แบบเชิงวัตถุ
  6. การวิเคราะห์ประโยคคำสั่ง และเกณฑ์การประเมินภาษา
  7. สอบกลางภาค
  8. แนวคิดภาษาโปรแกรมเชิงวัตถุ
    1. Encapsulation
    2. Inheritance
    3. Polymorphism (Overloading, Overriding)
  9. การนำ class กลับมาใช้ใหม่ (Object reuse)
    1. นำ class กลับมาใช้ใหม่ (แบบลอกใหม่หมด)
    2. เขียนใหม่จากข้อมูลที่มีอยู่ (ไม่มี source code ให้)
    3. นำโปรแกรมมาประกอบกัน (Composition)
    4. นำกลับมาใช้แบบสืบสกุล (Inheritance)
  10. การสืบทอด (Inheritance) และคอนสตัคเตอร์(Constructor)
  11. การพ้องรูป (Polymorphism)
    1. โอเวอร์โหลดดิ้ง (Overloading)
    2. โอเวอร์ไรดิ้ง(Overriding)
  12. การจัดการความผิดปกติโดย exception
  13. การเขียนโปรแกรมแบบ Event - driven (การทำงานตามเหตุการณ์)
    1. AWT (Abstract Windows Toolkit)
    2. แอปเพล็ต (Applet)
    3. สวิงค์(Swing)
  14. สอบปลายภาค
    ตัวอย่างภาษาคอมพิวเตอร์
    Compiler Resources
  1. What is BATCH ?
  2. What is DEBUG ?
  3. What is QBASIC ? 1963
    - Language Listing
    - BAS 1.9 (Interpreter *)
  4. What is GWBASIC ? 1963
    - Games Source
    - Free Basic Compiler ?
    - YaBasic Compiler
  5. What is PASCAL ? 1970
  6. What is C++ ? 1970
    - Notepad2 Source
    - Djgpp Compiler
  7. What is CLIPPER ? 1985
  8. What is COBOL ? 1959
  9. What is PERL ? 1987
    - Active Perl of activeState.com
  10. What is PHP ? 1994
  11. What is ASP ?
  12. What is JSP ?
  13. What is JAVA ? 1990
  14. What is JAVA Script ?
  15. What is ACCESS Nov1992
  16. What is VB ?
  17. What is ASSEMBLY ?
    - MS MASM 8.0
    - MS MASM 6.15
    - อิว ไอยรากาญจนกุล CD
  18. What is HTML ?
  19. What is MySQL ?
  20. What is LOGO ?

CYGWIN (Unix Simulator) #
คือ ชุดโปรแกรมสร้างสภาพแวดล้อมลินุกซ์บนวินโดวส์ ประกอบด้วย cygwin1.dll เพื่อจำลองสภาพแวดล้อมให้เหมือนลีนุกซ์ และรวมเรื่องมือที่จำเป็นให้เหมือนบนลีนุกซ์
โปรแกรมนี้จำเป็นต่อการ compile โปรแกรมมากมาย ที่ถูกพัฒนาให้ compile บน linux ทำให้นักพัฒนาสร้างโปรแกรมที่ถูกแปลบน linux แต่นำมาแปลบน windows ได้ในภายหลัง
เครื่องมือที่มีมาให้ เช่น ash coreutils cvs diffutils findutils gawk grep libiconv make patchutils perl sed unzip zip
หลังประมวลผล setup.exe ผมเลือก download จนสำเร็จ แต่ที่สำคัญต้องเลือกลง gcc, nasm, binutils, libtool, zip, unzip, make, flex, bison, cvs, cmake, autoconf, automake, ed เพิ่ม มิเช่นนั้นไม่มานะครับ หลัง download จะสร้างห้อง c:\cygwin อัตโนมัติ แล้วประมวลผล setup.exe อีกรอบเพื่อติดตั้งจาก Local Directory หลังติดตั้งสำเร็จจะเข้า Linux โดยจำลองห้อง c:\cygwin เป็น root directory สำหรับคำสั่งที่ใช้งานได้อยู่ในห้อง bin
- Download : setup.exe (cygwin.com 297 KB)
- Download : setup.exe (mirror.in.th)
- Download : setup.exe (kmitl.ac.th)
- Download : setup.exe (opensce.org)
- Download : .iso (berkeley.edu 1355MB)
- Download : .iso (linuxcenter.ru 3000MB)
- Download : .iso (400MB)
- Download : .iso (? 700MB)

กระบวนการแปลภาษา (Compilation Process)
1.Lexical Analyzer
2.Syntax Analyzer
3.Semantic Analyzer
4.Code Optimizer
5.Object Code Generation
    Compiler web link
  1. Slide เรื่อง language implementation
  2. Compilers and Compiler Generators
  3. Languages and Compiler Design
    มีหลายบท ตัวอย่างนี้เป็นบทที่ 6
  4. Programming language structure 1
    มีหนังสือ และ parsing ที่ละเอียดมาก
  5. Programming language PPT ละเอียดดีมาก
    Step in compiler
  1. เลกซิคัล อนาไลเซอร์ (Lexical Analyzer)
    ขั้นตอนแรก ทำหน้าที่ อ่าน Source Code แล้วแยกอักขระออกตามลักษณะ และหน้าที่ เช่น คำสั่ง ตัวแปร ค่าคงที่ เป็นต้น รวมถึงการขจัด ส่วนหมายเหตุ(Comment) ช่องว่างขาว(White space) เช่น blank, tab และ new line เป็นต้น ผลของขั้นตอนนี้จะแยกทุกสิ่งที่ควรแยกออกจากกัน เพื่อนำไปตรวจสอบในขั้นตอนต่อไป
    เป็นขั้นตอนแรกของคอมไพเลอร์ หน้าที่หลักคืออ่านอักษรทีละตัวจาก source code แล้วส่งผลลัพธ์ที่เป็น โทเคน ให้กับขั้นตอนซินแทกซ์อนาไลเซอร์ และเก็บค่าซึ่งจำเป็นต้องใช้ในขึ้นตอนอื่น ๆ ไว้ในตารางสัญลักษณ์ ซึ่งขั้นตอนซินแทกซ์อนาไลเซอร์ และเลกซิคัล อนาไลเซอร์ ต้องมีความสัมพันธ์กันอย่างใกล้ชิด

    Transition diagram แสดงลำดับของแต่ละประโยค แต่ละคำ แต่ละสัญลักษณ์ หรือตารางการตรวจสอบคำ (Token)
    A transition diagram is similar to a flowchart for (a part of) the lexer. We draw one for each possible token. It shows the decisions that must be made based on the input seen. The two main components are circles representing states (think of them as decision points of the lexer) and arrows representing edges (think of them as the decisions made).
    เช่น การแยก begin end if then และ else [http://cs.nyu.edu]
    (ตัวอย่างนี้จากหนังสือ การเขียนคอมไพเลอร์ สำหรับ IBM PC โดย อิว ไอยรากาญจนกุล สนพ.ซีเอ็ด)


    แบบฝึกหัด เรื่อง Transition diagram
    แสดง begin end
    แสดง if then และ else
    แสดง while loop locate และ lookup
    แสดง ตัวเลข = และ +
  2. ซินแทกซ์ อนาไลเซอร์ (Syntax Analyzer)
    ขั้นตอนที่สอง ทำหน้าที่ ตรวจสอบความสัมพันธ์ การจัดเรียง และความถูกต้องของแต่ละคำ แต่ละประโยค ซึ่งมีวิธีตรวจสอบหลายวิธี
    เช่น ตรวจสอบ parse tree ว่ามีไวยากรณ์ถูกต้องตามที่กำหนดไว้หรือไม่
    ? ? A parse tree is a tree that represents the syntactic structure of a string according to some formal grammar. A program that produces such trees is called a parser. Parse trees may be generated for sentences in natural languages (see natural language processing), as well as during processing of computer languages, such as programming languages.
    ตัวอย่างใช้ parse tree แสดง if E1 then ( if E2 then S1 else S2 ) หรือ if E1 then ( if E2 then S1) else S2
    แบบฝึกหัด เรื่อง parse tree
    ให้ใช้ parse tree แยก ( i + 2) * (3 - 1)
    ให้ใช้ parse tree แยก i + 2 * (3 - 1)
    ให้ใช้ parse tree แยก i + 2 * 3 - 1
  3. ซีแมนติก อนาไลเซอร์ (Semantic Analyzer)
    ขั้นตอนที่สาม ทำหน้าที่ ตรวจสอบความหมายของภาษา และสร้างรหัสของชุดคำสั่งที่ผ่านการตรวจสอบความถูกต้องของโครงสร้างแล้ว ให้อยู่ในรูปแบบ หรือขั้นตอนที่ใกล้เคียงกับภาษาเครื่อง ซึ่งเป็นภาษากลางที่ง่ายต่อการปรับปรุง หรือนำไปแปลงเป็นภาษาเครื่องต่อไป ขั้นตอนนี้อาจนำไปรวมกับ Code Generator แล้วสร้างภาษาเครื่องก็ได้
  4. โค้ด ออฟติไมเซอร์ (Code Optimizer)
    ขั้นตอนที่สี่ ทำหน้าที่ ปรับปรุง code ที่ได้ให้มีประสิทธิภาพในการทำงาน ใน compiler บางตัวอย่างไม่มีขั้นตอนนี้ หรือมีขั้นตอนนี้ ที่ละเอียดกว่านี้ก็ได้
  5. โค้ด เจนเนอเรเตอร์ (Code Generator)
    ขั้นตอนที่ห้า ทำหน้าที่ เปลี่ยนรหัสที่ได้ให้เป็นภาษาแอสเซมบลี หรือภาษาเครื่อง ซึ่ง code ที่ได้มีลักษณะขึ้นอยู่กับเครื่อง ที่ให้บริการหน่วยความจำ และ register ที่แตกต่างกันไป

COBOL source code : 
       working-storage section.
       01 ar occurs 5 times     pic 999.
       01 max                   pic 999 value 0.
       01 i                     pic 999 value 0.
       procedure division.
           display " " with blank screen.
           perform loop1 varying i from 1 by 1 until i > 5.
           perform loop2 varying i from 1 by 1 until i > 5.
           display "Max : " max.
           stop run.
       loop1.
           display i  " : " with no advancing.
           accept ar(i).
       loop2.
           if ar(i) > max
              move ar(i) to max.









HIPO ถูกพัฒนาโดยบริษัท IBM เมื่อ 2517 เพื่อเป็นเครื่องมือที่ช่วยในการออกแบบ และแสดงแบบซอฟต์แวร์ โดยใช้ผังงานแบบเดิม แต่เพิ่มฝังงานสำหรับอธิบายส่วนนำข้อมูลเข้า ส่วนประมวลผล และส่วนส่งออก ซึ่ง HIPO ประกอบด้วยผังงาน 3 ประเภท คือ ผังงานลำดับความสำคัญของกิจกรร (Hierarchy Diagram หรือ Visual Table of Contents) ผังภาพรวม IPO (Overview IPO Diagram) และผังภาพรายละเอียด IPO (Detailed IPO Diagram)
HIPO stands for Hierarchy plus Input, Process, Output. The first part, the hierarchy, is a visual table of contents that displays the modules in a hierarchy much like the appearance of an organization chart. The second part is a diagram that lists all input, all processes, and all output, and is often called an “IPO” chart.


ลูกศรสีดำ หมายถึง การควบคุม
ลูกศรสีขาว หมายถึง การเคลื่อนที่ของข้อมูล












Code Optimization ด้วย GW-Basic

5 START = TIMER
10 DIM X
20 FOR I = 1 TO 1000000!
30 X = X + I
40 NEXT
50 PRINT X
60 PRINT(TIMER - START)

run
 4.999414E+11 
 1.589844
Ok

    โครงสร้างข้อมูล
    แสดงถึงความสัมพันธ์ระหว่างข้อมูล ความสัมพันธ์หลักใหญ่ ๆ 4 แบบ
    http://sot.swu.ac.th/CP341/lesson01/ms1t2.htm
      โครงสร้างข้อมูลแบบเซต (set) เป็นโครงสร้างที่ข้อมูลแต่ละตัวไม่มีความสัมพันธ์กันเลย
      โครงสร้างแบบเชิงเส้น (linear) เป็นโครงสร้างที่ข้อมูลมีความสัมพันธ์แบบหนึ่งต่อหนึ่ง (one-to-one relationship) นั่นคือเราสามารถระบุถึงข้อมูลตัวถัดไปของข้อมูลได้
      โครงสร้างแบบต้นไม้หรือแบบลำดับขั้น (tree or hierarchical) เป็นโครงสร้างที่ข้อมูลมีความสัมพันธ์กันแบบหนึ่งต่อหลาย (one-to-many relationship) นั่นคือ ข้อมูลตัวหนึ่งสามารถมีความสัมพันธ์กับข้อมูลในลำดับรองลงไปได้หลายตัว
      โครงสร้างแบบกราฟหรือเครือข่าย (graph or network) เป็นโครงสร้างที่ข้อมูลมีความสัมพันธ์กันแบบหลายต่อหลาย (many-to-many relationship) นั่นคือ ข้อมูลตัวหนึ่ง ๆ อาจจะมีความสัมพันธ์กับข้อมูลตัวอื่น ๆ กี่ตัวก็ได้

    ภาษาคอมพิวเตอร์ (Computer Language)
    http://www.nectec.or.th/courseware/computer/comp-using/0064.html
      การสั่งงานคอมพิวเตอร์ ต้องอาศัยภาษาที่มีรูปแบบไวยากรณ์ที่ชัดเจน รัดกุม เพื่อให้คอมพิวเตอร์แปลความหมาย ได้ถูกต้อง ไม่เกิดผลผิดพลาด ภาษาสำหรับใช้เขียน คำสั่งให้คอมพิวเตอร์ทำงาน มีวิวัฒนาการมาหลายรุ่น มีคุณสมบัติ และลักษณะแตกต่างกันออกไป ดังนี้
      ภาษารุ่นที่ 1

      ภาษาเครื่อง (Machine Language) ที่ใช้อักขระเพียง 0 และ 1
      ภาษาสัญลักษณ์ (Symbol Language)
      ภาษาแอสเซมบลี (Assembly Language) ที่ใช้รหัสช่วยจำ (Mnemonic Code) แทนรหัสคำสั่งที่เป็นอักขระ 0 กับ 1
      การเขียนคำสั่งภาษาเครื่อง และภาษาสัญลักษณ์ จำเป็นต้องทราบขั้นตอน การทำงานภายในของตัวประมวลผลอย่างละเอียด ต้องทราบจำนวนรีจิสเตอร์ (Register) และหน้าที่ของรีจิสเตอร์ ต้องทราบถึงการอ้างถึงข้อมูลในหน่วยความจำมีวิธี และทำได้อย่างไร ภาษารุ่นนี้จึงใช้งานได้ยาก และมีความซับซ้อนในการสั่งงาน
      ตัวอย่างภาษา Assembly

        B80103 mov ax,00301
        B90100 mov cx,00001
        BA8000 mov dx,00080
        CD13 int 013
        C3 retn

      ภาษารุ่นที่ 2
      เป็นภาษาที่พัฒนาที่นับได้ว่าเก่าแก่ที่สุด และนับเป็นพื้นฐานในการพัฒนาภาษาคอมพิวเตอร์ใหม่ๆ ด้วย โดยมีจุดอ่อน คือ เป็นภาษาที่ไม่มีโครงสร้าง ไม่สามารถกำหนดชนิดข้อมูลได้ เช่น ภาษาฟอร์แทรน (FORTRAN), ภาษาโคบอล (COBOL - Common Business Oriented Language), ภาษา ALGOL (Algorithm Language) และภาษายอดนิยมที่สุด คือ ภาษา BASIC (Beginner's All Purpose Symbolic Instruction Code) ซึ่งหลายภาษา ยังได้รับความนิยมจนถึงปัจจุบัน
      ตัวอย่างภาษา Cobol

        working-storage section.
        77 x pic 99.
        procedure division.
        move 0 to x.
        perform cal-para until x >= 10.
        stop run.
        cal-para.
        add 1 to x.
        display x.

      ภาษารุ่นที่ 3
      เป็นภาษาที่นำเอาจุดด้อยของภาษารุ่นที่ 2 มาปรับปรุงและพัฒนา โดยปรับปรุงลักษณะ โครงสร้าง ตลอดจนขีดความสามารถของภาษารุ่นที่ 2 โดยแบ่งภาษารุ่นนี้ เป็นสองลักณะ คือ ภาษาสำหรับงานทั่วไป ได้แก่ ภาษา PL/I, Pascal, Modula-2, C, Ada โดยมีพื้นฐานการพัฒนามาจากภาษา ALGOL โดยนิยมนำมาใช้ในงานวิศวกรรม วิทยาศาสตร์ ธุรกิจ ตลอดจนงานระบบต่างๆ และภาษาสำหรับงานพิเศษ อันเป็นภาษาที่จัดทำขึ้นมาเพื่อใช้งานเฉพาะเจาะจง มีรูปแบบพิเศษออกไป เช่น ภาษา Lisp, Prolog, Smalltalk, APL และ FORTH เป็นต้น

      ภาษารุ่นที่ 4
      เป็นภาษาที่พัฒนาขึ้นมาเพื่อลดขั้นตอนการออกแบบระบบ โดยผู้ใช้ระบุผลลัพธ์ที่ต้องการ จากนั้นโปรแกรมก็จะใช้ความรู้ภายในตัวภาษา มาหาผลลัพธ์นั้นๆ แต่บางฟังก์ชันก็ยังต้องอาศัย การกำหนดเงื่อนไข และลำดับขั้นตอนของงานด้วย ภาษารุ่นนี้ เช่น ภาษาสอบถาม (Query Language) ซึ่งใช้ในการสืบค้นข้อมูลในฐานข้อมูล ได้แก่ ภาษา SQL (Sturctured Query Language) นอกจากภาษาสอบถาม ยังมีภาษาแบบตัวสร้างโปรแกรม (Program Generator) ซึ่งมักจะพบในโปรแกรมจัดการฐานข้อมูล เช่น dBASE, FoxPro เป็นต้น

      ภาษารุ่นที่ 5
      เป็นภาษารุ่นใหม่ที่นิยมใช้กันอย่างแพร่หลายในปัจจุบัน มีลักษณะการทำงานเชิงวัตถุ มีระบบช่วยเหลือต่างๆ มากมาย เช่น Visual Basic, Visual FoxPro เป็นต้น
      ดังนั้น ภาษาของคอมพิวเตอร์นั้นมีอยู่ด้วยกันมากมายหลายภาษา โดยแต่ละภาษาจะประกอบไปด้วย ส่วนประกอบต่างที่ๆ ที่คล้ายกัน แต่คุณสมบัติและวิธีการนำคำสั่งมาจัดเรียงกัน อาจจะแต่ต่างกันบ้างในแต่ละภาษา
      ภาษาคอมพิวเตอร์ส่วนใหญ่สร้างขึ้นจาก บริษัทต่างๆ เพื่อประโยชน์ในเชิงธุรกิจ แต่ก็มีภาษาบางส่วนที่ คิดค้นขึ้นมาจากนักวิจัยหรือนักศึกษาที่มี ความสามารถในการคิดค้นภาษาใหม่ๆ ขึ้นมาก็ได้ การที่ภาษาคอมพิวเตอร์มีหลายภาษา เนื่องมาจากความสามารถ ของแต่ละภาษาไม่เหมือนกัน เช่น โปรแกรมเมอร์ A ได้สร้างภาษาขึ้นมาภาษาหนึ่ง ซึ่งมีความสามารถของการทำงานในระดับหนึ่ง แต่ โปรแกรมเมอร์ B อาจจะเห็นมาว่าไม่สามารถทำงานได้อย่างเต็มที่ จึงได้สร้างภาษา อื่นขึ้นมา โดยอาจจะดีกว่า (หรือไม่ก็ได้)

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

    1. ภาษาฟอร์แทรน (FORTRAN)
      ภาษาฟอร์แทรน (FORTRAN - FORmula TRANslation) จัดได้ว่าเป็นภาษาระดับสูงภาษาแรกของโลก พัฒนาในปี ค.ศ. 1954 โดยทีมนักคอมพิวเตอร์ บริษัท ไอบีเอ็ม (IBM) นำทีมโดย จอห์น แบคคัส (John Backus) โดยแนะนำออกมาสองรุ่น คือ FORTRAN II และ FORTRAN IV ต่อมาได้พัฒนาภาษา เป็นมาตรฐานรุ่นแรก เรียกว่า FORTRAN-66 อย่างไรก็ตาม ยังมีข้อบกพร่อง อีกหลายประการ เช่น ไม่สามารถกำหนดชนิดข้อมูล ไม่สามารถทำงานกับ ข้อมูลประเภทสายอักขระ และไม่มีคำสั่งที่สามารถกำหนด โครงสร้างได้เหมาะสม จึงมีการปรับปรุงแก้ไข และออกมาเป็น FORTRAN-77 และ FORTRAN-88 ซึ่งยังมีใช้จนถึงปัจจุบัน
    2. ภาษาโคบอล (COBOL)
      ภาษาโคบอล (COBOL : Common Business Oriented Language) เป็นภาษาสำหรับใช้ในงานธุรกิจภาษาแรกของโลก พัฒนาในปี 1962 โดยคณะกรรมการโคดาซิล (The Conference on Data Systems Languages - CODASYL) มีจุดเด่นคือ สามารถใช้งานแฟ้มข้อมูลได้หลายแบบ กำหนดโครงสร้างข้อมูลได้สะดวก มีลักษณะการเขียนโปรแกรม แบบเอกสารอธิบายโปรแกรม ช่วยให้ข้อมูลกับนักพัฒนารุ่นถัดไปได้ง่าย และสะดวก
    3. ภาษา ALGOL
      ภาษา ALGOL หรือ Algorithmic Language คิดค้นโดยกลุ่มนักคอมพิวเตอร์ ที่มาประชุมวิชาการ ที่ซูริค ในปี 1958 และออกเผยแพร่ปี 1960 มีคำสั่งกำหนดโครงสร้าง และชนิดข้อมูลอย่างสมบูรณ์ และมีการนำไปเป็นพื้นฐานในการออกแบบภาษารุ่นที่ 3 ที่นิยมกันอย่างมากในปัจจุบัน เช่น Pascal โดยภาษา ALGOL ที่เป็นมาตรฐาน ได้แก่ ALGOL-60 และ ALGOL-68
    4. ภาษา BASIC
      ภาษาเบสิค (BASIC: Beginner's All Purpose Symbolic Instruction Code) พัฒนาโดย จอห์น เคมเมนี (John Kemeny) และ ธอมัส เดิรตส์ (Thomas Kurtz) วิยาลัยดาร์ทเมิร์ท (Dartmouth College) ในปี ค.ศ. 1963
      จุดประสงค์ เพื่อใช้สอนวิชา การเขียนโปรแกรม และได้รับความนิยมอย่างสูง บนเครื่องไมโครคอมพิวเตอร์ โดยมีการนำมาทำเป็น ชุดคำสั่งถาวร (Firmware) เก็บไว้ใน ROM บนไมโครคอมพิวเตอร์รุ่นแรกๆ ปัจจุบันมีการพัฒนารูปแบบ และตัวแปรภาษาออกมาหลายรุ่น เช่น Quick BASIC, Turbo BASIC และยังได้รับความนิยมอยู่จนถึงปัจจุบัน เนื่องจากมักเป็นภาษาแรก ที่ใช้ในการเรียนการสอนวิชาคอมพิวเตอร์
    5. ภาษา PL/1
      ภาษา PL/I เป็นภาษาที่พัฒนาขึ้นโดยทีมงานของบริษัทไอบีเอ็ม ที่ตั้งใจจะรวมความสามารถของภาษา FORTRAN, ALGOL, COBOL เข้าด้วยกัน ดังนั้นจึงอาจกล่าวได้ว่า ภาษานี้เป็นภาษาแรกที่ทำงานได้กว้างขวางจริงๆ ทั้งทางด้านวิทยาศาสตร์ วิศวกรรม และธุรกิจ แต่ขณะเดียวกัน ก็ทำให้ตัวแปลภาษาใหญ่มาก จนไม่สามารถนำไปใช้กับเครื่องขนาดเล็กได้ ภาษานี้กำหนดรูปแบบ/ประเภทข้อมูลได้หลายแบบ ทำงานหลายงานพร้อมกันได้ (Multitasking) ทำงานกับอุปกรณ์รับส่งข้อมูล ที่ซับซ้อนได้ และประมวลรายการได้ (List Processing) แต่ภาษานี้ไม่เป็นที่ยอมรับมากนัก
    6. ภาษา Pascal
      ภาษาปาสกาล เป็นภาษาที่นิคลอส เวิร์ธ (Prof. Niklaus Wirth ปี ค.ศ. 1970) แห่งสถาบัน Swiss Federal Institute of Technology สร้างขึ้นเพื่อใช้ในการสอนเทคนิคใหม่ๆ ทางด้านการพัฒนาซอฟต์แวร์ ซึ่งก็คือ เทคนิคการโปรแกรมแบบโครงสร้าง และเป็นภาษาที่ได้รับ ความนิยมอย่างสูง ถึงขึ้นที่มีเสียงเรียกร้องให้นำภาษานี้ ไปบรรจุเป็นภาษาเริ่มต้น ในคอมพิวเตอร์ แทนภาษาเบสิค บริษัทบอร์แลนด์ จึงได้นำตัวแปลภาษาปาสกาล ไปทำเป็นตัวแปลภาษา ในรูปของ Turbo Pascal ซึ่งมีราคาถูก ซึ่งเป็นเหตุหนึ่ง ที่ช่วยให้ภาษานี้แพร่หลายมากขึ้น และได้รับความนิยมสูง อาจกล่าวได้ว่าภาษาปาสกาล เป็นลูกของภาษา ALGOL โดยตรง เพราะมีโครงสร้าง และลักษณะที่คล้ายกันมาก
    7. ภาษา Modula-2
      ภาษา Modula-2 เป็นภาษาที่นิคลอส เวิร์ธ ปรับปรุงจากภาษาปาสกาล โดยพยายามให้มีลักษณะที่ดีของภาษา สำหรับเขียนโปรแกรมมากขึ้น เช่น การทำให้มีการซ่อนสารสนเทศ (Information Hiding) หลักการนามธรรม (Abstraction) การกำหนดชนิดข้อมูล ซึ่งสามารถนำไปใช้กับการดำเนินงานแบบ Recursion และ Concurrency ได้ด้วย ปัจจุบันภาษานี้ไม่ได้รับความนิยมเท่าที่ควร
    8. ภาษา C
      ภาษา C พัฒนาโดยกลุ่มนักคอมพิวเตอร์จากห้องปฏิบัติการเบลล์ เพื่อใช้กับงานระบบ (System) เช่นการนำไปใช้เป็นระบบปฏิบัติการ Unix ซึ่งเป็นภาษาที่ได้รับความนิยมอย่างสูง ในปัจจุบัน เพราะมีลักษณะที่น่าสนใจอย่างประการ เช่น กำหนดชนิดข้อมูลได้หลายแบบ ทำงานในระบบเครื่องได้ สามารถใช้ตัวชี้ตำแหน่ง (Pointer) ได้ มีวิธีดำเนินการ และการคำนวณกับข้อมูลได้มากมายหลายแบบ
    9. ภาษา Ada
      ภาษา Ada พัฒนาขึ้นตามสัญญาว่าจ้างของกระทรวงกลาโหม สหรัฐอเมริกา ที่ต้องการได้ภาษาคอมพิวเตอร์ ที่สามารถใช้แทนภาษาอื่นๆ ที่หน่วยงานต่างๆ ภายในกระทรวงกำลังใช้อยู่ในขณะนั้นได้ ภาษานี้มีโครงสร้างคล้ายภาษาปาสกาล แต่ทำงานได้มากกว่า เช่น ทำงานหลายงานได้พร้อมกัน (Mustitasking) จัดการกับการขัดจังหวะได้ (Interrupt handling) จัดจังหวะการทำงานให้เข้ากัน (Intertask Synchronization) เป็นต้น ซึ่งนับว่าเป็นภาษาที่มากด้วย โครงสร้างแบบต่างๆ จึงมีขนาดใหญ่ด้วย
    10. ภาษา Lisp
      ภาษา Lisp (LISt Processing) เป็นภาษาที่นับได้ว่าเก่าแก่พอๆ กับภาษาฟอร์แทรน พัฒนาในปี 1950 โดย จอห์น แมคคาร์ธี (John McCarthy) สถาบันเทคโนโลยีแห่งแมสสาชูเสตต์ เหมาะสมกับงานประมวลสัญลักษณ์ หรือรายการต่างๆ ในปัญหาประเภท Combinatorial ซึ่งใช้ในงานปัญญาประดิษฐ์ เช่น การพิสูจน์ทฤษฏี การค้นหาข้อมูล ที่จัดโครงสร้างแบบต้นไม้ เป็นต้น ภาษานี้มีโปรแกรมย่อย ในรูปของฟังก์ชัน ที่มีลักษณะเป็นเอกเทศ สามารถนำมาทำเป็นคลังฟังก์ชันขนาดใหญ่ได้ และเป็นการเน้นหลักการ ด้านการนำกลับมาใช้ใหม่ได้เป็นอย่างดี ปัจจุบันมีการนำมาใช้ในการสร้าง ระบบผู้เชี่ยวชาญกันมาก เพราะลักษณะของภาษา เอื้ออำนวยต่อการใช้ระบุความจริง กฎเกณฑ์ และการอนุมานต่างๆ อันจำเป็นต่องานระบบอิงฐานความรู้
    11. ภาษา Prolog
      ภาษา Prolog (PROgramming in LOGic) เป็นอีกภาษาที่นิยมใช้ในการสร้างระบบผู้เชี่ยวชาญ (Artificial Intelligence) เพราะเหมาะสำหรับใช้แสดงความรู้ (Knowledge Representation) โดยนำความรู้มาเขียนในรูปของ อนุประโยค (Clause) ซึ่งเป็นภาษาคู่แข่งกับภาษา Lisp พัฒนาโดย Colmerauer แห่ง University of Marseilles ในปี 1970 จากนั้น Clocksin กับ Mellish จาก University of Edinburgh ได้นำมาพัฒนาเพื่อใช้งานต่อ
    12. ภาษา APL
      ภาษา APL (A Programming Language) เป็นภาษาระดับสูงที่คิดสร้างโดย เค. อี. ไอเออร์สัน (Ken Iverson) แห่งบริษัทไอบีเอ็ม เมื่อปี 1960 มีลักษณะแตกต่างจาก ภาษาคอมพิวเตอร์ภาษาอื่นอยู่มาก เช่น ใช้สัญลักษณ์แทนการทำงาน หรือการดำเนินการทางเลขคณิต และอักขระ ทำให้โปรแกรมมีขนาดกระทัดรัด จึงเป็นภาษาที่นิยมใช้แก้ปัญหาคณิตศาสตร์

    The Basic Structure of a Compiler
    img (http://courses.cs.vt.edu/~cs1104/Compilers/Compilers.020.html)
      The five stages of a compiler combine to translate a high level language to a low level language, generally closer to that of the target computer. Each stage, or sub-process, fulfills a single task and has one or more classic techniques for implementation.
      1. วิเคราะห์การสะกด (Lexical Analyzer) : Analyzes the Source Code Removes "white space" and comments Formats it for easy access (creates tokens) Tags language elements with type information Begins to fill in information in the SYMBOL TABLE **
      2. วิเคราะห์โครงสร้างประโยค (Syntactic Analyzer) : Analyzes the Tokenized Code for structure Amalgamates symbols into syntactic groups Tags groups with type information
      3. วิเคราะห์ความหมาย (Semantic Analyzer) : Analyzes the Parsed Code for meaning Fills in assumed or missing information Tags groups with meaning information
      4. สร้างโปรแกรม (Code Generator) : Linearizes the Qualified Code and produces the equivalent Object Code
      5. ตรวจสอบโปรแกรมที่สร้างขึ้น (Optimizer) : Examines the Object Code to determine whether there are more efficient means of execution


    จุดประสงค์เบื้องต้นของเทคนิคโครงสร้าง (#ครรชิตวิชิต 11)
      1. เพื่อสร้างโปรแกรมที่มีคุณภาพสูง และสามารถทำนายได้ว่าจะเกิดอะไรขึ้นในโปรแกรม
      2. เพื่อสร้างโปรแกรมที่แก้ไขดัดแปลงง่าย
      3. เพื่อทำให้ขั้นตอนการพัฒนาโปรแกรมเป็นระบบขึ้น และง่ายขึ้น
      4. เพื่อทำให้การพัฒนาระบบรวดเร็ว และประหยัด

    กิจกรรมการประมวลผลข้อมูล (#นงนุช 26)
      ส่วนนำเข้า (Input)
      - การรวบรวมข้อมูล (Collection)
      - การบันทึกข้อมูล
      - การสอบทานข้อมูล
      ส่วนดำเนินการ (Process)
      - การเรียงลำดับ (Sorting)
      - การจัดหมวดหมู่ (Classification)
      - การคัดเลือก (Selection)
      - การคำนวณ (Calculation)
      - การสรุปผล (Summarization)
      - การปรับปรุงข้อมูล (Updating)
      ส่วนนำออก (Output)
      - การทำรายงาน (Reporting)
      - การจัดเก็บข้อมูล (Storing)

    วัฏจักรซอฟต์แวร์ (Software life cycle) (#ครรชิตวิชิต 30)
      1. วิเคราะห์เพื่อหาข้อกำหนดโปรแกรม
      2. ออกแบบ
      3. เขียนคำสั่ง
      4. ทดสอบ
      5. บำรุงรักษา

    วิธีการแสดงแบบซอฟต์แวร์ (#ครรชิตวิชิต 39)
      1. การพิมพ์โปรแกรมต้นฉบับ (Source listing)
      2. ผังงาน (Flowchart)
      3. ผังงานโปรแกรมโครงสร้าง (Structure flowchart)
      4. ผังงานแบบ Nassi-Shneiderman
      5. HIPO (Hierarchy plus input-process-output)
      6. ผังงานแจ็คสัน (Jackson diagram)
      7. ผังงานแบบวาร์นิแอร์-ออร์ (Warnier-Orr diagram)
      8. ผังงานโครงสร้าง (Structure chart)
      9. คำสั่งลำลอง (Pseudo code)
      10. ตารางการตัดสินใจ (Decision table)

    Optimization problems are made up of three basic ingredients:
      An objective function which we want to minimize or maximize. For instance, in a manufacturing process, we might want to maximize the profit or minimize the cost. In fitting experimental data to a user-defined model, we might minimize the total deviation of observed data from predictions based on the model. In designing an automobile panel, we might want to maximize the strength.
      A set of unknowns or variables which affect the value of the objective function. In the manufacturing problem, the variables might include the amounts of different resources used or the time spent on each activity. In fitting-the-data problem, the unknowns are the parameters that define the model. In the panel design problem, the variables used define the shape and dimensions of the panel.
      A set of constraints that allow the unknowns to take on certain values but exclude others. For the manufacturing problem, it does not make sense to spend a negative amount of time on any activity, so we constrain all the "time" variables to be non-negative. In the panel design problem, we would probably want to limit the weight of the product and to constrain its shape.

    แนะนำเว็บ (Web Guides)
  1. http://developer.mozilla.org/en/docs/Build_Documentation คำแนะนำการ compile mozilla
  2. ตัวอย่างการใช้ menu, toolbars + contructor ของ jcheckboxmenuitem
  3. อธิบายที่มาของ swing ได้ดีมาก ตัวอย่าง code และสารบัญจากหนังสือ มีให้ download
  4. Code เกี่ยวกับ Swing
  5. อธิบาย Java2D ได้ละเอียดมาก มีข้อมูลเรื่อง swing
  6. สอน JAVA เป็นภาษาอังกฤษได้ค่อนข้างสมบูรณ์
  7. Java API document : references
  8. เครื่องหมายปฏิบัติการ (Operation sign) โดย jana.net
  9. อธิบาย Array โดย jana.net
  10. Java lobby มีข้อมูล และเรื่องราวเกี่ยวกับ JAVA
  11. สอน Java (.pdf) โดย สุรเวช อึ้งประเสริฐ (รามคำแหง)
  12. แผนการสอน OOP วิทยาลัยปทุมธานี คณะ บริหารธุรกิจ : อ. ศิลา ชุณห์วิจิตรา
  13. ตัวอย่าง OOP ด้วยภาษา PHP โดย อ.ทองจุล ขันขาว
  14. วิชาโครงสร้างข้อมูล ของ มหาวิทยาลัยศรีนครินทรวิโรฒ (Uni.net.th)
  15. ข้อมูลเรื่อง Computer ละเอียดมาก ๆ มีหัวข้อประมาณ 100 หัวข้อ
  16. Software คืออะไร
  17. ภาษาคอมพิวเตอร์
  18. สอนเขียน COBOl ละเอียดมาก
  19. ข่าวเกี่ยวกับ Microsoft .net
  20. HTMl คืออะไร
  21. Glossary
  22. Java optimazation
  23. Global optimization
  24. Optimization technology center มีภาพเกี่ยวกับ Global optimization และอื่น ๆ
  25. What is optimization?
  26. Automatic Programming (แผนการสอนนิดหน่อย เรื่อง Optimization and OOP)
  27. OOP fundamentals By Jim Booth มีรายละเอียดสมบูรณ์ (Sample by VisualFoxpro)
  28. กระดานข่าวเกี่ยวกับ OOP เป็นภาษาไทย โดย narisa.com
  29. เรื่องราวของ Visualstudio.net โดย รังสรรค์ พลเสน (รามคำแหง)
  30. Compiler subject :: http://www.ashland.edu/~sgray/compilers/ch1.html [img]
  31. Compiler building :: http://compilers.iecc.com/crenshaw/
  32. Compiler generlators :: http://www.scifac.ru.ac.za/compilers/
  33. Programming language :: http://www.engin.umd.umich.edu/CIS/course.des/cis400.html **
  34. Programming language :: http://www.stanford.edu/class/cs242/slides/index.html (Slide in PPT)
  35. Introduction to programming I :: http://vu.msu.edu/preview/cse231/
  36. Programming language :: http://people.cs.uchicago.edu/~odonnell/OData/Courses/CS221/Lecture-Notes/contents.html
  37. Programming language concept :: http://www.math.grin.edu/~stone/courses/languages/
  38. Vocabulary :: http://www.stanford.edu/class/cs242/readings/vocabulary.html

:: โปรแกรม Ultraedit-32 ใช้พัฒนาโปรแกรมแบบ IDE
    http://uemake.szm.com/menu/uemake/about.htm :: Print Screen
    เป็น editor ที่มีความสามารถช่วยในการแปลภาษาได้หลายภาษา โดยอาศัย compiler ที่มีอยู่ในเครื่องอยู่แล้ว มาช่วยแปล และแสดงผลในหน้าต่างที่กำหนด และรายงานผลการแปลในอีกหน้าต่างหนึ่ง

คำอธิบายรายวิชา (Course Description)

    CPSC 218 การเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming)
    การเขียนโรปแกรมเชิงวัตถุเบื้องต้น การวิเคราะห์โครงสร้างของโปรแกรมเชิงวัตถุ เทคนิคเบื้องต้นของการออกแบบซอฟต์แวร์ ฟังก์ชันการออกแบบเชิงวัตถุขั้นพื้นฐาน การออกแบบโปรแกรมเชิงวัตถุ โปรแกรมตัวอย่าง และการฝึกปฏิบัติในห้องปฏิบัติการ
    CPSC 214 หลักการภาษาชุดคำสั่ง (Principles of Programming Languages)
    ทฤษฎีของการออกแบบ และสร้างภาษา แนวคิดเกี่ยวกับภาษาฟอร์มัล รูปแบบ และคุณลักษณะทางไวยากรณ์เบื้องต้น ชนิด และโครงสร้างของข้อมูล โครงสร้างของการควบคุม และการเคลื่อนที่ของข้อมูล การพิจารณาเวลาในการประมวลผล อัลกอริทึมแบบขนาน การออพติไมซ์ การออกแบบ และสร้างลักษณะต่าง ๆ ของภาษา ลักษณะเฉพาะของภาษาแบบโครงสร้างบล๊อก แบบมอดูลาร์ แบบเชิงวัตถุ ประเภทของภาษาชุดคำสั่ง แบบกำหนดกระบวนการ และแบบไม่กำหนดกระบวนการ การวิเคราะห์ประโยคคำสั่งของภาษาคอมพิวเตอร์ ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ

    CPSC 213 โครงสร้างคอมพิวเตอร์ และภาษาแอสเซมบลี้ (Computer Organization and Assembly Language)
    ระบบตัวเลขที่ใช้แทนข้อมูลและคำสั่งในเครื่องคอมพิวเตอร์ โครงสร้างระบบและภาษาเครื่อง หน่วยประมวลผลและหน่วยความจำ แบบจำลองของเครื่อง โปรแกรมภาษาแอสเซมบลี้ การทำงานกับโปรแกรมควบคุมระบบ อุปกรณ์ตรรกโปรซีเตอร์สำหรับอ่าน/เขียนข้อมูล ระบบแฟ้มข้อมูลเบื้องต้น การใช้บัฟเฟอร์หลายอัน รูปแบบและชนิดของคำสั่ง ภาษาแมคโครแอสเซมบลี้ การเชื่อมโยงส่วนจำเพาะ (Module linking) พื้นฐานของโปรแกรมควบคุมระบบ เช่น การจัดจังหวะประสาน มัลติโปรแกรมมิ่ง เทคนิคหน่วยความจำเสมือน

    CPSC 211 วิทยาการคอมพิวเตอร์ (Computer Science)
    หลักการเขียนโปรแกรมแบบโครงสร้าง หลักการออกแบบโปรแกรม การแทนข้อมูลแบบต่าง ๆ นิพจน์โครงสร้างแบบบล็อก แถวลำดับ ฟังก์ชัน และโปรแกรมย่อย โครงสร้าง และการประมวลผลแฟ้มข้อมูลแบบต่าง ๆ โครงสร้างข้อมูลเบื้องต้น การเรียกซ้ำ การเรียงลำดับ การค้นหา และการผสานข้อมูล ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ

    CPSC 101 ความรู้เบื้องต้นเกี่ยวกับโปรแกรมคอมพิวเตอร์ (Introduction to Computer Programming)
    องค์ประกอบ และการทำงานของเครื่องคอมพิวเตอร์ ตรรก และการแก้ปัญหา ข้อมูล และรหัสที่ใช้แทนข้อมูลศึกษาพื้นฐานหลักการเขียนโปรแกรม การวิเคราะห์งาน การเขียนผังงาน การเขียนโปรแกรม และการนำเสนอการทดสอบโปรแกรม สภาพการผิดพลาดของโปรแกรม การบันทึก และการประมวลผลแฟ้มข้อมูลเบื้องต้น ฝึกปฏิบัติการเขียน และทดสอบโปรแกรมด้วยภาษาปาสคาล ภาษาซี หรือภาษาระดับสูงอื่น ๆ
    หนังสืออ้างอิง (Book Referenced) ::
  1. การเขียนโปรแกรมเชิงวัตถุ , ผศ.ธวัชชัย งามสันติวงศ์, 2545 (#ธวัชชัย)
  2. การเขียนโปรแกรมเชิงวัตถุภาษาจาวา, ชุลีรัตน์ จรัสกุลชัย, 2543 (#ชุลีรัตน์)
  3. Java programming volume 1, ดร.วีระศักดิ์ ซึงถาวร, 2543 (#วีระศักดิ์)
  4. คัมภีร์ JAVA เล่ม 2, ณัฐดนัย สุขรัตน์, 2543 (#ณัฐดนัย)
  5. เทคนิคการออกแบบโปรแกรม , ดร.ครรชิต มาลัยวงศ์ และวิชิต ปุณวัตร์ (#ครรชิตวิชิต)
  6. การโปรแกรมแบบโอโอพี ด้วยเทอร์โบปาสคาล , บุญเลิศ เอี่ยมทัศนา (#บุญเลิศ)
  7. หลักการเขียนโปรแกรม , นงนุช วรรธนวหะ (#นงนุช กระทรวงศึกษาธิการ)
  8. โครงสร้างข้อมูล และอัลกอริทึม , ประกาศิต ชาติบุรุษ และอาทิตย์ จิตต์จุฬานนท์ (#ประกาศิต)
  9. หนทางสู่อาชีพนักคอมพิวเตอร์ , ครรชิต มาลัยวงศ์ (#ครรชิต)
  10. Concepts of programming languages, Rober W. Sebesta, 5th edition. (#robert)
  11. Programming by design, Philip L. Miller (#philip)
  12. Structured programming concepts, Keith LaBudde (#keith)
  13. Database system concepts, Korth Silberschatz (#korth)
  14. Introduction to Computer science [An algorithmic approach] , Jean-paul Tremblay (#jean)
  15. Data abstraction and problem solving with JAVA , Fank M. Carrano and Janet J. Prichard (#frank)


    Technical Term
  1. Primitive : type พื้นฐาน
  2. Simplicity : ง่าย
  3. Synthesis : การประกอบสิ่งต่าง ๆ ขึ้นเป็นรูปร่าง
  4. Contemporary : รุ่นเดียวกัน
  5. Abstract : รายการย่อ
  6. Implementation : ลงมือปฏิบัติ
  7. Lexicon : พจนานุกรม
  8. Syntax : ความสัมพันธ์ระหว่างถ้อยคำ หรือโครงสร้างประโยค
  9. Amalgamate : การรวม การผสาน
  10. Semantic : ความเกี่ยวข้องในความหมาย
  11. Equivalent : สมดุล เท่ากัน
  12. Semantic : ความหมาย หรือเกี่ยวกับ
  13. Bunch : พวง
  14. Particular : โดยเฉพาะ
  15. Swing : ส่วนสนับสนุน GUI เป็นส่วนหนึ่งขอ JFC (Java Foundation Class) ที่ขยายความสามารถของ AWT
  16. โปรแกรมคอมพิวเตอร์ (Computer Program) :: ชุดของคำสั่งภาษาคอมพิวเตอร์ที่กำหนดให้คอมพิวเตอร์ทำการประมวลผล ให้ได้ผลลัพธ์ตามความต้องการของผู้ใช้


แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223