Concepts in General / Web Programming

Slides:



Advertisements
Similar presentations
1 Java 程序设计 Java 程序设计 Java Programming Fall, 2013.
Advertisements

JAVA 编 程 技 术 主编 贾振华 2010年1月.
第一單元 建立java 程式.
<<會計資訊系統課程講義>> 統一塑模語言(UML)語法精要 -- 物件導向概念、需求分析及系統分析
基本概論 Basic concepts.
軟體工程 -物件導向程式設計與UML系統分析實作
第一章 認識程式語言.
第一章 資料結構導論 1-1 資料結構簡介 1-2 認識程式設計 1-3 演算法效能分析 1-4 物件導向程式設計與Java.
Ch02物件導向程式設計 物件導向系統分析與設計.
第一章 面向对象程序设计.
課程名稱:程式設計 授課老師:________
The discipline of algorithms
程設一.
新世代計算機概論 第14章 程式語言.
Ch07 PHP程式基礎 網頁程式設計.
第1章 程式語言與Visual Basic的基礎
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
第八章 编码和测试 编码概述 编码语言与编码工具 编码示例 测试的基本概念 黑盒测试和白盒测试 测试用例设计 多模块程序的测试策略
程設一.
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
臺北市立大學 資訊科學系(含碩士班) 賴阿福 CS TEAM
第5章 面向对象程序设计 本章要点 5.1 面向对象程序设计概述 5.2 Java语言的面向对象程序设计 5.3 方法的使用和对象数组
課程名稱:程式設計 授課老師:________
Java簡介.
Chapter 1 Introduction.
陳維魁 博士 儒林圖書公司 第七章 參數的傳遞 陳維魁 博士 儒林圖書公司.
第3章 變數、資料型別與運算子.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
實作輔導 日期: 3/11 09:10~16:00 地點:臺北市立大學 臺北市中正區愛國西路一號 (中正紀念堂站7號出口)
Lecture 2 Lecture An Introduction To The HTML Language
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
创建型设计模式.
Object-Oriented Programming:
第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
C++ 與 物件導向 程式設計概念簡介 魏天君 2018/12/3.
C 語言簡介 - 2.
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
預官考試輔導 計算機概論提要 91年12月4日.
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第九單元 Classes and data abstraction I
重點 資料結構之選定會影響演算法 選擇對的資料結構讓您上天堂 程式.
Formal Pivot to both Language and Intelligence in Science
張智星 台大資工系 多媒體檢索實驗室 第十二章 ASP基本介紹 張智星 台大資工系 多媒體檢索實驗室.
Advanced Basic Key Terms Dependency Actor Generation association
第 1 章 Java 簡介.
Programming Languages
第一單元 建立java 程式.
Classes (2) Lecture 7.
資料結構 Data Structures Fall 2006, 95學年第一學期 Instructor : 陳宗正.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
面向对象 程序设计语言基础 马骏
计算机问题求解 – 论题1-7 - 不同的程序设计方法
Speaker: Liu Yu-Jiun Date: 2009/4/29
爬蟲類動物2 Random Slide Show Menu
Inheritance -II.
SAP 架構及基本操作 SAP前端軟體安裝與登入 Logical View of the SAP System SAP登入 IDES
第二章 Java基本语法 讲师:复凡.
方法進階及物件導向基礎 Lecturer: 楊昌樺.
第一讲 面向对象方法学与信息系统建模.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
编译原理 第一章 引 论 南京大学计算机科学与技术系 戴新宇.
程式語言簡介 2019/7/17 明乘中學編製.
Programming & Language Telling the computer what to do
面向对象程序设计 C++教程 西安工业大学 于帆.
輸出執行結果到螢幕上 如果要將執行結果的文字和數值都「輸出」到電腦螢幕時,程式要怎麼寫? class 類別名稱 {
Introduction to the C Programming Language
Summary
第三章 计算机体系结构.
Presentation transcript:

Concepts in General / Web Programming 生物資訊程式語言應用 Part 1 Concepts in General / Web Programming

Principle of Programming Interface with PC Compiler / Interpreter C++ Perl Assembler Machine Code English Japanese Chinese Machine Code

Data processor model You can think of a computer as a data processor. Is it a specific-purpose machine or a general-purpose machine?

Programmable data processor model A program is a set of instructions that tells the computer what to do with data. A program is a set of instructions written in a computer language. The output data depend on the combination of two factors: the input data and the program.

Programming Programs must be stored A sequence of instructions Programs are stored in computer memory. A sequence of instructions Programs must be a sequence of instructions.

Example Integer division? x / y = q, remainder = r What if y==0? It will not terminate! What does the Following Program compute? The problem?

Programming Language 組合語言 高階語言 必須先被翻譯成機器語言後才能被電腦接受,擔任這個翻譯工作的程式叫做組譯 高階語言為程序導向語言,是專為各種應用程式而設計的語言,一個敘述就可以代表數個組合語言中的指令 C, C++, Fortran

Programming Language Compiler (編譯器) Interpreter (直譯器) 它會將高階語言所寫的原始程式(Source Program)轉成目的程式(Object Program)再交由電腦執行。 Interpreter (直譯器) 它將高階語言的每一敘述逐一翻譯成機器語言後直接執行,並不會產生目的程式。 原始程式 直譯器 編譯器 目的程式 執行

Basic語言 採用直譯器的方式,可以順利地在微電腦中運作,因而隨著微電腦的發展,BASIC語言也不斷成長。

Pascal語言 它是一種結構良好的程式語言,具有動態性的資料型態、遞迴性副程式功能、具有集合型態、及區域性結構等特性。

C語言 可以直接操控資料的每個位元。 其擁有高階語言的特性,也能產生近乎組合語言的程式碼,因此被廣泛地用來發展系統軟體或作業系統 。

C++ 基於C所擴充的物件導向程式語言 在類別中,可定義資料(Data member)和行為(Function member) 可以指定使用範圍為公開的(Public),或是私自的(Private) 範例:

JAVA 美國Sun公司於1995年發表 具備有物件導向的特性 提供了跨平台的功能 範例:

Levels of Abstractions

Why So Many Languages? Application domains have distinctive (and conflicting) needs Examples: Scientific Computing: high performance Business: report generation Artificial intelligence: symbolic computation Systems programming: low-level access Real-time systems: timing constraints Special purpose languages

History

Web Programming

World Wide Web WWW comprises software (Web server and browser) and data (Web sites) Client Side JavaScript VBScript DHTML Java Applets Server Side CGI ASP Java Servlets HTML, XML, ...

Client-Side Scripting versus Server-Side Scripting Client-side scripts Validate user input Reduce requests needed to be passed to server Access browser Enhance Web pages with DHTML, ActiveX controls, and applets Limitations: browser dependency, viewable Server-side scripts Executed on server Generate custom response for clients Wide range of programmatic capabilities File access Access to server-side software that extends server functionality ISAPI (IIS), modules (Apache)

Programming Concepts

Fundamental Concepts Variables and data types Data structure Assignment and operators Control Comments

Variables and data types Integer Real (floating-point) Character Boolean FORTRAN INTEGER a, b REAL c, d BYTE e, f LOGICAL g, h Pascal a, b: integer; c, d: real; e, f: char; g, h: boolean; C/C++ (Java) int a, b; float c, d; char e, f; bool g, h;

資料型態 用以表示一個應用系統中要處理的對象 常見的資料型態 資料型態決定: 數字:整數(int)、長整數(long int)、浮點數(float)、雙精準數(double) 文字:字元(char)、字串(string) 資料型態決定: 所需空間 可表示的數值或資料範圍(參見下頁) 有意義的運算

C的資料型態

Data structure Homogeneous array Heterogeneous array FORTRAN INTEGER a(6,3) Pascal a: array[0..5,0..2] of integer; C/C++ int a[5][2]; C/C++ struct{ char Name[25]; int Age; float SkillRating; } Employee;

Assignment and operators APL a <- b + c; Ada, Pascal a := b + c; C/C++ (Java) a = b + c; Operator precedence Operator overloading

Control Old-fashion: goto Not recommended in modern programming 20 print “passed.” goto 70 40 if (grade < 60) goto 60 goto 20 60 print “failed.” 70 stop if (grade < 60) then print “failed.” else print “passed.”

Control structures

Control structures (contd.)

Comments C/C++, Java a = b + c; // This is an end-of-line comment /* block comment */ a = b + c; /** This is a documentation comment */ a = b + c;

Calling a procedure

Terminology

Terminology (contd.) Procedure’s header Local vs. global variables Formal vs. actual parameters Passing parameters Call by value (passed by value) Call by reference (passed by reference) Call by address: variant of call-by-reference.

Call by value procedure Demo(Formal) Formal  Formal + 1; Demo (Actual);

Call by reference procedure Demo(Formal) Formal  Formal + 1; Demo (Actual); C/C++ void Demo(int& Formal) Formal = Formal + 1;

Functions vs. procedures A program unit similar to a procedure unit except that a value is transferred back to the calling program unit as “the value of the function.”

The translation process Lexical analyzer: identifying tokens. Parser: identifying syntax & semantics.

Code generation Coercion: implicit conversion between data types Strongly typed: no coercion, data types have to agree with each other. Code optimization x = y + z; w = x + z; w = y + (z << 1);

OOP Object Class Instance variables & Methods (member functions) Active program unit containing both data and procedures Class A template from which objects are constructed An object is an instance of the class. Instance variables & Methods (member functions) Constructors Special method used to initialize a new object when it is first constructed. Destructors vs. garbage collection

A class sample Instance variable methods

Encapsulation Encapsulation A way of restricting access to the internal components of an object Private versus public Class A { private int m1(); public int m2() { int x = m1(); return (x+1);} }; A a; a.m2();

Polymorphism Polymorphism Allows method calls to be interpreted by the object that receives the call Circle circle; Rectangle rect; circle.draw(); rect.draw(); Circle(); Rectangle();

Inheritance Inheritance Allows new classes to be defined in terms of previously defined classes. Class Base; Class Circle : Base; Class Rectangle : Base; Base *base; Circle circle; Rectangle rect; base = &circle; base -> draw(); base = &rect;