Programming language
Download
1 / 30

??????????? Programming Language - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on

ภาษาโปรแกรม Programming Language. Introduction. Course outline. ผู้สอน : รัชดาพร คณาวงษ์ email : kanawong@su.ac.th office : ตึกวิทย์ 1 ชั้น 6 Telephone : 8711 หนังสือ Programming Language : Concepts & Constructs 2 nd Edition by Ravi Sethi, Addison-Wesley, 1996.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' ??????????? Programming Language' - zachery-valentine


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Programming language

ภาษาโปรแกรมProgramming Language

Introduction


Course outline
Course outline

  • ผู้สอน : รัชดาพร คณาวงษ์

    • email : kanawong@su.ac.th

    • office : ตึกวิทย์ 1 ชั้น 6

    • Telephone : 8711

  • หนังสือ

    • Programming Language : Concepts & Constructs 2nd Edition by Ravi Sethi, Addison-Wesley, 1996.

    • Concepts of Programming Languages 6th Edition by Robert W. Sebesta, Addison-Wesley, 2003.

  • 2


    Introduction

    The role of programming language

    Language Description : syntactic structure

    Imperative programming

    Statement : Structured programming

    Types : Data Representation

    Procedure Activations

    Object-Oriented Programming

    Functional Programming

    Logic Programming

    เกณฑ์การวัดผล

    สอบกลางภาค30%

    สอบปลายภาค30%

    Assignments 20%

    การบ้าน 20%

    เนื้อหาและการวัดผล


    ภาษาโปรแกรม

    • เครื่องมือ (tool) ที่สั่งให้คอมพิวเตอร์ทำงานตามที่ต้องการ

    • วิธีการหรือเครื่องมือที่ใช้ในการสื่อสารระหว่างโปรแกรมเมอร์

    • เครื่องมือที่ใช้สำหรับแสดงการออกแบบขั้นตอนการทำงานในระดับสูง (high-level designs)

    • สัญลักษณ์ที่สำหรับวิธีการแก้ปัญหา (notation for algorithms)

    • วิธีการแสดงความสัมพันธ์ระหว่างแนวคิด

    • เครื่องมือสำหรับการทดลอง

    • วิธีการหรือเครื่องมือที่ใช้ควบคุมอุปกรณ์ทางคอมพิวเตอร์

    4


    Von neumann architecture
    Von Neumann Architecture

    คอมพิวเตอร์ในอดีตจนถึงปัจจุบัน ถูกพัฒนาโดยอ้างอิง

    แนวคิดดังนี้

    • คอมพิวเตอร์ประกอบด้วยส่วนสำคัญ 3 ส่วน คือ หน่วยความจำ, หน่วยควบคุม และหน่วยประมวลผล

    • การติดต่อเพื่อส่งผ่านข้อมูลระหว่างหน่วยความจำและหน่วยประมวลผล สามารถทำได้ครั้งละ 1 หน่วยข้อมูล

    • ข้อมูลและคำสั่งที่ใช้การประมวลผลจะถูกเก็บในหน่วยความจำ ซึ่งถูกระบุตำแหน่งด้วยตำแหน่งของหน่วยความจำ (Memory Address)

    5


    ภาษาโปรแกรม

    • ภาษาที่ใช้ติดต่อกับคอมพิวเตอร์ เพื่อให้คอมพิวเตอร์ทำงานตามที่ต้องการ

    • ออกแบบและสร้างขึ้นให้สามารถทำงานได้กับคอมพิวเตอร์ที่มีสถาปัตยกรรมแบบ Von Neumann

      • ต้องทำงานทีละคำสั่งเรียงกันอย่างเป็นลำดับ

      • ต้องมีการนิยามตัวแปร เพื่อใช้ในการอ้างอิงถึงตำแหน่งข้อมูลในหน่วยความจำ

      • ภาษาในกลุ่มนี้ เรียกว่า imperative หรือ conventional language : COBOL,FORTRAN,Pascal, C

    6


    ทำไมต้องศึกษาภาษาโปรแกรมทำไมต้องศึกษาภาษาโปรแกรม

    • พัฒนาความรู้เรื่องโครงสร้างที่สำคัญของภาษาโปรแกรม

    • พัฒนาความรู้ความเข้าใจในภาษาโปรแกรมที่เลือกใช้

    • เลือกภาษาโปรแกรมที่เหมาะสมกับงานได้

    • เรียนรู้ภาษาโปรแกรมใหม่ได้ง่ายขึ้น

    • เป็นพื้นฐานในการสร้างภาษาโปรแกรมใหม่ได้

    7


    สิ่งที่มีอิทธิผลต่อการพัฒนาภาษาโปรแกรมสิ่งที่มีอิทธิผลต่อการพัฒนาภาษาโปรแกรม

    • เครื่องคอมพิวเตอร์และโปรแกรมควบคุมระบบ(Computer Hardware and Operating System)

    • การประยุกต์ใช้คอมพิวเตอร์ (Application)

    • วิธีการเขียนโปรแกรม (Programming Methods)

    • วิธีการนำไปใช้ (Implementation Methods)

    • การศึกษาทฤษฎี (Theoretical Study)

    • ความเป็นมาตราฐาน (Standardization)

    8


    ประวัติของภาษาโปรแกรมประวัติของภาษาโปรแกรม

    • ยุคแรก : ควบคุมด้วย Hardwired ซึ่งเป็นการควบคุมการทำงานของฮาร์ดแวร์โดยใช้ฮาร์ดแวร์ ทำให้ไม่มีความยืดหยุ่นในการใช้งาน เป็นการสร้างระบบคอมพิวเตอร์เพื่อใช้งานเฉพาะอย่าง

    • แนวคิด : คอมพิวเตอร์ไม่ควรเป็นอุปกรณ์ทำงานเฉพาะอย่าง ควรจะทำงานตามที่ผู้ใช้ต้องการ โดยใช้ชุดของคำสั่งในการควบคุมการทำงาน

    • เกิดการพัฒนาภาษาโปรแกรมต่าง ๆ ขึ้นพร้อม ๆ กับการพัฒนาระบบคอมพิวเตอร์ (Hardware)

    9



    ยุคของภาษาโปรแกรม of Language in Computing)

    • ยุคที่ 1 : ภาษาเครื่อง (Machine Language)

    • ยุคที่ 2 : ภาษาสัญลักษณ์ (Symbolic Language)

    • ยุคที่ 3 : ภาษาระดับสูง (High Level Language)

    11


    ภาษาโปรแกรม of Language in Computing)

    • Higher level

      • แบ่งออกตามระดับของการอ่านเข้าใจง่าย (readability) เมื่อเทียบกับระดับของการอ่านเข้าใจในข้อความภาษาอังกฤษ

      • แบ่งตามระดับของการไม่ขึ้นอยู่กับเครื่อง (machine independence)

    • General purpose

      • ความสามารถในการประยุกต์ของภาษาโปรแกรมกับงานหรือปัญหาด้านต่าง ๆ ซึ่งหลากหลาย

    12


    กำเนิดมาพร้อมกับคอมพิวเตอร์กำเนิดมาพร้อมกับคอมพิวเตอร์

    เป็นภาษาที่เครื่องเข้าใจได้โดยตรง

    เป็นที่มาของคำว่า codeซึ่งปัจจุบันหมายถึง ข้อความที่ประกอบขึ้นเป็นโปรแกรมในภาษาใด ๆ (program text)

    เป็นภาษาระดับต่ำ

    มนุษย์ทำความเข้าใจได้ยาก

    ทำงานเร็ว

    ตัวอย่างบางส่วนของโค้ด

    00000010101111001010

    00000010111111001000

    00000011001110101000

    บวกเลขในตำแหน่งที่ 10 กับเลขในตำแหน่งที่ 11 แล้วเก็บผลลัพธ์ไว้ในตำแหน่งที่ 12

    ภาษาเครื่อง

    13


    เนื่องจากภาษาเครื่องเข้าใจยาก และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    สร้างภาษา Assembly โดยใช้สัญลักษณ์และชื่อแทนโค้ดจริง

    เป็นภาษาระดับต่ำที่อ่านเข้าใจได้ง่ายขึ้น

    เป็นภาษาที่ขึ้นอยู่กับเครื่อง

    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

    ภาษาสัญลักษณ์

    Program

    14


    Assembly และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    code

    Assembler

    Object code

    15


    ภาษาระดับสูง และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    • ใช้สัญลักษณ์ที่คุ้นเคยและอ่านเข้าใจง่าย

    • สามารถนำโปรแกรมไปรันบนเครื่องที่ต่างกันโดยทำการแก้ไขโค้ดเล็กน้อยหรือไม่ต้องแก้ไขเลย (portability / machine independence)

    • มีชุดคำสั่งโปรแกรมให้ใช้ (program libraries)

    • มีการตรวจสอบข้อผิดพลาด (error) ในช่วงที่ทำการเขียน (implementation)

    16


    ภาษาระดับสูง และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    แบ่งย่อยเป็น 3 ประเภท คือ

    • ภาษายุคที่ 3 (3GL- Fourth General Language)

    • ภาษายุคที่ 4 (4GL- Fourth General Language)

    • ภาษายุคที่ 5 (5GL- Fourth General Language)

    17


    ภาษายุคที่ 3 และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    • เป็นภาษาแรกที่มีใช้คำสั่งคล้ายกับประโยคในภาษาอังกฤษทำให้ใช้งานง่ายกว่าภาษาในยุคก่อน

    • มีคุณสมบัติ portable ทำให้สามารถนำ object code ที่สร้าง (compile) จากระบบหนึ่งไปใช้ระบบที่ต่างกันได้

    • ภาษาที่อยู่ในกลุ่มนี้ ได้แก่

    FORTAN C

    COBOL C++

    BASIC Java

    Pascal ActiveX

    18


    ภาษายุคที่ 4 และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    • เป็นภาษาเหมาะกับงานเฉพาะด้านและใช้งานง่ายกว่า 3GL

    • ใช้ลักษณะ text-based environment (คล้าย 3GL)

    • โปรแกรมเมอร์สามารถใช้ visual environment ได้โดยใช้เครื่องมือทางด้านกราฟิก ทำให้สร้าง Prototype หรือ GUIของโปรแกรมได้รวดเร็ว

    • ส่วนใหญ่เป็นโปรแกรมที่รวบรวมการจัดการฐานข้อมูลด้วย

    • ภาษาที่อยู่ในกลุ่มนี้ ได้แก่

    Visual Basic (VB)

    VisualAge

    Authoring environments

    19


    ภาษายุคที่ 5 และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    • เป็นภาษาที่รวมเอาปัญญาประดิษฐ์ (Artificial Intelligence) และระบบผู้เชี่ยวชาญ (Expert Systems) มาใช้ในการสร้างโปรแกรม ซึ่งทำได้ยาก

    • ระบบจะสนใจที่จะคิดและมีส่วนร่วมในการตัดสินใจของผู้ใช้

    • อาจเป็นการหาคำตอบที่เหมาะสำหรับคำถามที่ผู้ใช้ป้อน และคำตอบที่ได้จะเหมือนกับเป็นคำตอบจากมนุษย์

    • ยังเป็นที่ถกเถียงกันในหมู่โปรแกรมเมอร์ว่ามีอยู่หรือไม่

    20


    ภาษาโปรแกรมที่ดี และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    • ความชัดเจนและง่ายของการนิยามภาษา (Concept)

    • ความชัดเจนของรูปแบบโปรแกรม (Program Syntax)

    • ความเป็นธรรมชาติสำหรับการประยุกต์ใช้ (Application)

    • ความง่ายของการตรวจสอบโปรแกรม (Verification)

    • สิ่งแวดล้อมของการเขียนโปรแกรม (Environment)

    • การเคลื่อนย้ายโปรแกรม (Portability)

    • ค่าใช้จ่าย (cost)

    21


    Programming environments
    Programming Environments และภาษาอังกฤษใช้คำมากเกินกว่าที่จะใช้ในการแสดงความหมาย (verbose)

    เครื่องมือต่าง ๆ ที่ใช้ในการพัฒนาโปรแกรม

    (Tools used in software development)

    • Unix

      • ระบบปฏิบัติการที่มีเครื่องมือพัฒนาโปรแกรมมาพร้อม

    • Borland C++

      • เครื่องมือที่ใช้ในการเขียน C และ C++ บน PC

    • Smalltalk

      • Language Processor/Environment

    • Microsoft Visual C++

      • visual environment ที่มีขนาดใหญ่และซับซ้อน

    22


    กระบวนการพัฒนาโปรแกรมกระบวนการพัฒนาโปรแกรม

    • การวิเคราะห์ความต้องการ (Needs analysis)

    • การออกแบบระบบ (System)

    • การพัฒนา (Development)

    • การนำไปใช้ (Implementation)

    • การบำรุงรักษา (Maintenance)

    23


    Programming domains
    Programming Domainsกระบวนการพัฒนาโปรแกรม

    • Scientific Application

    • Business Application

    • Artificial Intelligence

    • System Programming

    • Scripting Language

    • Special Purpose Language

    24


    Implementation methods
    Implementation Methodsกระบวนการพัฒนาโปรแกรม

    • Compilation

      • แปล (translate) จากภาษาโปรแกรมชั้นสูงเป็นภาษาเครื่อง

      • ใช้เวลาแปลงนาน

      • ทำงาน (execute) เร็ว

    • Interpreter

      • ไม่ต้องทำการแปลก่อนเรียกใช้

      • ทำงานช้า

    • Hybrid Implementation

      • cost ในการแปลไม่มาก

      • ทำงานเร็วปานกลาง

    25


    Lexical analyzerกระบวนการพัฒนาโปรแกรม

    Lexical units

    Syntax analyzer

    Parse tree

    Intermediate

    code generator

    Intermediate code

    Source

    program

    Source

    program

    Lexical analyzer

    Lexical units

    Syntax analyzer

    Parse tree

    Symbol

    table

    Intermediate

    code generator

    (and semantic analyzer)

    Optimization

    Intermediate code

    Input data

    Interpreter

    Code generator

    Machine language

    Computer

    Input data

    Results

    Results

    Pure Interpretation

    Compilation

    26

    Hybrid Implementation


    Language categories paradigms

    Imperativeกระบวนการพัฒนาโปรแกรม

    Object-Oriented

    Logic

    Functional

    Imperative

    Procedural :- C

    Block-Structured :-Pascal, Ada

    Object-based :- Ada

    Object-oriented :- Ada, Object-Pascal, C++, Java

    Parallel Processing :- Ada, Pascal-S, Occam, C-Linda

    Declarative

    Logic :- Prolog

    Functional :- LISP, Scheme

    Database :- SQL

    Language Categories (Paradigms)

    27


    รูปแสดงกระบวนการพัฒนาโปรแกรม

    แผนผังประวัติ

    โดยสังเขปของกำเนิดภาษา

    โปรแกรมที่สำคัญ

    1957

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    Algol58

    Algol60

    SIMULA

    Algol W

    SIMULA67

    Algol68

    Pascal

    MODULA-2

    Smalltalk80

    Ada

    C++

    Oberon

    MODULA-3 ANSI C

    Eiffel

    Ada95 Java

    28


    รายงานกระบวนการพัฒนาโปรแกรม

    • รูปแบบงาน : รายงานภาษาโปรแกรมคอมพิวเตอร์ (10%)

      • เลือกภาษาที่ต้องการ (เลือกก่อนมีสิทธ์ก่อน)

        • http://directory.google.com/Top/Computers/Programming/Languages/

        • http://dir.lycos.com/Computers/Programming/Languages/ หรือ site อื่น ๆ ที่เกี่ยวข้อง

      • ตรวจสอบว่ามีคนเลือกไปแล้วหรือไม่

        • ส่ง mail เพื่อบอกภาษาที่ต้องการทำพร้อมกับ URL ที่เกี่ยวข้องกับภาษานั้นมา ถ้าเห็นสมควรจะ mail ตอบกลับไป

        • ศึกษาภาษานั้นอย่างละเอียด

        • เขียนรายงานส่ง 1 ฉบับ ส่งมาในรูปของ PDF format ใช้ตัวอักษร Cordia New 16

    29


    รายงานกระบวนการพัฒนาโปรแกรม (ต่อ)

    • รายละเอียด (อย่างน้อย) ที่ควรมีในรายงาน ประกอบด้วย

      • ประวัติความเป็นมา บอกความเป็นมา จุดกำเนิด บุคคลหรือหน่วยงานที่เกี่ยวข้อง พัฒนาการในช่วงแรก

      • จุดเด่นของภาษา คุณสมบัติที่สำคัญของภาษาที่เป็นจุดเด่น ทำให้แตกต่างจากภาษาอื่น

      • เป้าหมายในการใช้งาน ภาษานี้เหมาะ หรือสร้างขึ้น เพื่องานใดเป็นเฉพาะ

      • สถานภาพขณะนี้มีสถานภาพเป็นอย่างไร เลิกไปแล้ว ยังมีคนใช้อยู่ กลายพันธ์เป็นภาษาใหม่ไปแล้ว เป็นต้น

      • ทรัพยากร มีอะไรน่าสนใจให้ใช้ได้บ้าง ตัวอย่าง code หรือ compiler แหล่งข่าว mailing list หรือ chat room เป็นต้น

      • แหล่งอ้างอิงเอกสารอ้างอิงต่าง ๆ จาก web site ก็ได้

  • กำหนดส่ง : 20ธันวาคม 2547 เวลา 16.00 น.

  • 30