新世代計算機概論 第14章 程式語言.

Slides:



Advertisements
Similar presentations
程序设计基础 第 2 章 解题要有程序 主讲:吴献彩 Tel : QQ :
Advertisements

创作计算机程序 学习目标: 定义术语 “ 计算机程序 ” 说明编程过程中流程图和伪代码的用途 介绍程序在寻求解决方案的过程中可以利用的两种方 法 区别计算机编程的两个主要步骤 列举并描述面向对象编程的三个要素.
现代电子技术实验 ——综合实验之单片机部分
第 4 章 PHP 基本語法.
軟體工程 -物件導向程式設計與UML系統分析實作
勇闖「卡勒居」 學長姐經驗分享(文組).
C與C++ C++語言具有物件導向的功能,易於開發、撰寫與偵錯,成為重要系統的開發工具之一。
C语言程序设计 主讲教师 :张群燕 电话:
第一章 绪论.
第一章 認識程式語言.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼)
第一章 C语言概述 计算机公共教学部.
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
P303 HTML/DHTML/CSS/JavaScript 專業HTML網頁設計 陳錦輝.
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
課程名稱:程式設計 授課老師:________
Chapter 4 流程控制.
類別與物件 Class & Object.
趙靖宇時間-專治你的Monday blue
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
物件導向程式設計 (Object-Oriented rogramming)
第5章 编码.
陳維魁 博士 儒林圖書公司 第七章 參數的傳遞 陳維魁 博士 儒林圖書公司.
程式敘述執行順序的轉移 控制與重複、方法 Lecturer:曾學文.
结构体和共用体 2 梁春燕 华电信息管理教研室.
第六章 运行时存储空间的组织和管理 术语 本章内容 讨论一个活动记录中的数据布局 程序执行过程中,所有活动记录的组织方式 过程的活动
第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
C语言 程序设计基础与试验 刘新国、2012年秋.
2019/1/17 Java语言程序设计-程序流程 教师:段鹏飞.
Java程序设计 第2章 基本数据类型及操作.
第 1 章 Java 簡介.
陳維魁 博士 儒林圖書公司 第五章 控制結構 陳維魁 博士 儒林圖書公司.
編譯程式設計 期末專題說明 V1.1 May 2004.
第三章 C# 基础知识.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
软件测试 (四)静态测试与动态测试.
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
程式結構&語法.
2011 邀请中国姐妹学校韩国语研修团项目 申请时间: ~5月 27日 / 项目地点: 汉阳大学 安山校区 / 项目时间: (星期日) ~ 7.22(星期五) 费用: 100万元(韩币/人 (包含项目 - 学费, 教材费, 宿舍费, 接机费用及所有文化体验活动项目费用)
陳維魁 博士 儒林圖書公司 第三章 變數與繫結 陳維魁 博士 儒林圖書公司.
Oop8 function函式.
程式語言 程式語言發展史 資料型態 程式指令 程序定義和使用.
指標
第3 语言翻译问题 [学习目标]:学习和掌握语言的语法的基本概念和基本要素,理解翻译的步骤;学习和掌握BNF文法。
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 Java语法基础.
第二章 语言设计问题.
挑戰C++程式語言 ──第9章 函數.
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第一讲 面向对象方法学与信息系统建模.
编译原理实践 1.课程说明及引论.
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
程式語言簡介 2019/7/17 明乘中學編製.
第2章 Java语言基础.
面向对象程序设计 C++教程 西安工业大学 于帆.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
第9章 C++程序设计初步 9.1 C++的特点 9.2 最简单的C++程序 9.3 C++的输入输出 9.4 函数的重载
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
程式設計與程式語言 告訴電腦做些什麼 第十六章.
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete
Introduction to the C Programming Language
Summary
Presentation transcript:

新世代計算機概論 第14章 程式語言

14-1 程式語言的演進 指令 (instruction) 是指揮電腦完成一項基本任務的命令。 14-1  程式語言的演進 指令 (instruction) 是指揮電腦完成一項基本任務的命令。 程式 (program) 是一組有順序的指令集合。 程式語言 (program language) 是用來撰寫程式的語言。

14-1-1 第一代語言-機器語言 機器語言 (machine language) 的每個指令都是由0與1組合而成,包含了運算碼 (op-code) 與運算元 (operand) 兩個部分。 屬於機器相關語言,不具有可攜性。

14-1-2 第二代語言-組合語言 組合語言 (assembly language) 所撰寫的程式必須經過組譯程式 (assembler) 轉換成目的碼或機器語言,才能執行。 屬於機器相關語言,不具有可攜性。 機器語言和組合語言統稱為低階語言。 組譯程式 (assembler) 可以將由組合語言撰寫出來的程式轉換成目的碼,而目的碼包含了機器指令、資料值及這些項目的位址。

14-1-3 第三代語言-高階語言 語法近似於英文。 14-1-3 第三代語言-高階語言 語法近似於英文。 屬於機器無關語言,所撰寫的程式必須經過直譯程式 (interpreter) 或編譯程式 (compiler) 轉換成目的碼或機器語言,才能執行。 int COMPARE(int x, int y) { if (x < y) return -1; else{ if (x == y) return 0; else return 1; }

14-1-4 第四代語言-超高階語言 使用者只要在套裝軟體內選取工具、介面、資料庫或控制項,就可以快速完成程式的開發。

14-1-5 第五代語言-自然語言 自然語言允許使用者以多種方式來敘述同一件事情,主要應用在人工智慧方面。

14-2 程式語言典範

14-2-1 命令式典範 整個程式是由一連串的命令與程序所組成,只要逐步執行這些命令與程序,就可以得到結果。

FORTRAN是IBM公司於1954年所發展出來的高階程式語言,一開始應用於IBM 740電腦的科學計算,現在則廣泛應用於經濟分析、工程數學及科學研究。 C FORTRAN PROGRAM X = 0 1 IF (X .EQ. 10) GOTO 2 X = X + 1 GO TO 1 WRITE (6, 10) X 10 FORMAT(1X, ‘Value of X is ’, F6.2) STOP END

ALGOL是在1960年代所發展出來的程式語言,主要的用途是描述演算法。 BASIC是將FORTRAN加以簡化所創立的程式語言,接近人類的自然語言及數學運算式,學習容易。 COBOL是美國國防部成立的一個協會於1959年所發展出來的程式語言,主要的用途是從事大量的檔案處理、資料輸入/輸出與商業計算。

Pascal是承襲ALGOL的理念所發展出來的程式語言,一開始應用於校園的教學。 procedure swap(var x : integer; var y : integer); var z : integer; begin z := x; x := y; y := z; end;

Ada具有高度的可攜性與可讀性,適合用來撰寫即時系統或同步運算程式。 C是AT&T貝爾實驗室的Dennis Ritchie於1972年所發展出來的程式語言,以C語言撰寫出來的程式不僅具有可攜性,而且執行速度快 。

14-2-2 函數式典範 函數式型態程式語言有LISP、ML、Miranda、Gofer、Scheme、CLOS等。

函數式型態的觀念是將整個程式視為數個基本函數組合而成,例如: (define (length x)) (cond ((null? X) 0) (else (+ 1 (length (cdr x)))))) (define (append x z) (cond ((null? x) z) (else (cons (car x) (append (cdr x) z))))) (define (square n) (* n n)) (map square ‘(1 2 3 4 5))

14-2-3 邏輯式典範 邏輯式型態 (logic paradigm) 程式語言的代表首推PROLOG,具有邏輯推理性,主要的用途是搜尋資料庫、定義演算法、撰寫編譯器、開發專家系統等。

14-2-4 物件導向式典範 物件導向式型態程式語言有Simula、SmallTalk、C++、Java、C#等。

物件導向程式設計 (OOP) 物件 (object) 是資料與程式碼的組合 欄位 (field) 或屬性 (property) 是用來描述物件的特質 方法 (method) 是用來執行物件的動作 事件 (event) 是在某些情況下發生特定訊號警告您 類別 (class) 是物件的分類

物件導向程式設計的特點: 封裝 (encapsulation) 繼承 (inheritance) 多型 (polymorphism) 覆載 (overloading)

C++為AT&T貝爾實驗室承襲C語言的理念所發展出來的物件導向程式語言。 Java為Sun公司承襲C++ 的理念所發展出來的物件導向程式語言,除了有類似C和C++ 的語法,還提供了自動儲存裝置管理 (垃圾收集法)、例外處理、支援多執行緒 (multi-threads)、跨平台 (cross-platform) 等功能 。 C# 是從C/C++ 發展出來的一種簡單、現代化且具物件導向、型別安全的程式語言,由於C# 的語法類似C/C++,故熟悉C/C++ 的人可以快速學會C#。

網頁設計相關的程式語言 HTML XML、XSL CSS VRML DHTML XHTML Java Applet ActiveX Control 瀏覽器端script 伺服器端script

14-3 程式語言的設計 資料型別 (data type) 決定了資料將佔用的記憶體空間、能夠表示的範圍及程式處理資料的方式。

常數 列舉 結構 final float PI = 3.14159; struct card{ int pips; char suit; enum weekdays {sun, mon, tue, wed, thu, fri, sat}; 結構 struct card{ int pips; char suit; };

陣列

流程控制 (flow control) 決定了程式的執行方向。 第一種判斷結構 if (expression) statementA

第二種判斷結構 if (expression) statementA else statementB

第三種判斷結構 switch (expression){ case value1: statement1 case value2: statement2 … default: statementN }

第一種迴圈結構 while(expression) statementA

第二種迴圈結構 do statementA while(expression);

第三種迴圈結構 for(expression1, expression2, expression3) statementA

程序可以將一段具有某種功能的敘述區塊寫成一個獨立的程式單元,然後給予特定名稱,其優點如下: 具有可重複使用性。 程式碼變得更精簡。 程式碼的可讀性提高。 程式碼的邏輯和正確性提高,比較容易偵錯、修改或維護。

遞迴函數 :可以呼叫自己本身的函數。 int factorial(int n){ if (n <= 1) return 1; else return(n * factorial(n - 1)); }

傳值呼叫 (call by value) #include <stdio.h> int main(void){ int x = 1, y = 100; swap(x, y); printf(“%d %d\n”, x, y); /*會印出1 100*/ return 0; } void swap(int i, int j){ int temp; temp = i; i = j; j = temp;

傳址呼叫 (call by reference) #include <stdio.h> int main(void){ int x = 1, y = 100; swap(&x, &y); printf(“%d %d\n”, x, y); /*會印出100 1*/ return 0; } void swap(int *i, int *j){ int temp; temp = *i; *i = *j; *j = temp;

14-4 程式設計的過程 定義與分析問題 設計演算法 撰寫程式 偵錯與測試 維護與更新