程序设计语言与语言程序处理程序基础(软件设计师备考笔记)
目錄
第七章.程序設計語言與語言程序處理程序基礎
第一節.編譯過程
第二節.文法定義
第三節.有限自動機與正規式
第四節.表達式
第五節.函數調用——傳值與傳址
第六節.程序設計語言的種類、特點及適用范圍
第七章.程序設計語言與語言程序處理程序基礎
重點:正規式(必考)、表達式(高頻)、傳值與傳址(高頻)
第一節.編譯過程
編譯過程分為解釋型和編譯型兩類,編譯方式生成邏輯上與源程序等價的目標程序,解釋方式不生成
?
圖注:詞法錯誤:從左到右逐個掃描源程序中的字符,識別其中如關鍵字(或保留字)、標識符、常數、運算符以及分隔符(標點符號和括號)等
語法錯誤:主要是分析句子結構的錯誤,如非法字符,關鍵字或標識符拼寫錯誤,語法結構錯誤,if endif不匹配,缺分號等
語義錯誤:死循環,零循環,其他邏輯錯誤等
詞法分析的輸出是“記號流”;也就是語法分析的輸入,而語法分析的輸出是“語法樹”
詞法分析的任務是把源程序的字符串轉換為單詞符號序列
注:
(1)符號表在編譯程序工作的過程中需要不斷收集、記錄和使用源程序中一些語法符號的類型和特征等相關信息。這些信息一般以表格形式存儲于系統之中
(2)在對源程序進行編譯的過程中,常生成與源程序等價的中間代碼,以利于進行優化,常見的中間代碼包括:后綴式、三地址碼和樹等
(3)中間代碼的生成與具體的機器沒有任何關系,但目標代碼的生成與具體的機器有著密切的關系
(4)編譯過程中,中間代碼生成和代碼優化并不是每一個編譯編譯器都必須的
第二節.文法定義
文法的定義
一個形式文法是一個有序四元組G=(V,T,S,P),其中:
1) V:非終結符。不是語言組成部分,不是最終結果,可理解為占位符
2) T: 終結符。是語言的組成部分,是最終結果。
3) S:起始符。是語言的開始符號
4) P:產生式。用終結符替代非終結符的規則
文法的類型
分為0型、1型、2型、3型
零型又稱短語文法
1型又稱上下文有關文法
2型又稱上下文無關文法
3型又稱正規文法
語法推導樹
可以用來進行語法規則的推導,通過推導樹,我們可以了解到一種語法能夠表達的串以及能夠構造的句型是什么樣子
例如:
?
注:程序設計語言的大多數語法現象可用其中的上下文無關文法來描述
第三節.有限自動機與正規式
有限自動機
?
圖注:(S,0)=B表示S通過路徑0可以得到B,而S即為初態,f即為終態
考察形式:設定一個值:如10或01或001,問是否能夠構建這樣一條通路?,實際上該題即問終態與初態相連,求出其路徑,再看其路徑值是否與與題意相符
例題
?
圖注:直接把選項中的路徑代入圖中運行,從初態開始運行,若選項提供的路徑使其到達了終態,那么這就是正確的選項,該題中即為C選項
正規式
正規式是描述程序語言單詞的表達式
例題
?
圖注:“ | ”代表“或”;“ * ”代表循環多次,如在或運算中,可以任意選擇左式和右式的循環次數,循環次數可以從零到無窮大,該題的答案為A和C
第四節.表達式
表達式按照樹的遍歷分為了前綴表達式、中綴表達式、后綴表達式
考察形式:
?
圖注:首先將表達式(括號無需構造)構造為一顆中序表達樹,然后再進行下一步運算,該題答案即為D
第五節.函數調用——傳值與傳址
函數調用的方式分為兩種:傳值調用和傳址調用
概念及特點
1.傳值調用:形參取的是實參的值,形參的改變不會導致調用點所傳的實參的值發生改變
,調用時實際上是把調用的值復制給了一個變量
2.傳址調用(也稱引用調用):形參取的是實參的地址,即相當于實參存儲單元的地址引用,因此其值的改變同時就改變了實參的值,調用時實際上是將實參的地址的指針賦值給了變量,因此它的改變會引起實參的改變
?
第六節.程序設計語言的種類、特點及適用范圍
C++
1.特點:既支持面向對象程序設計的概念,也支持原來在c語言中的過程式程序設計,因此有人稱其為混合式的面向對象語言,屬于面向對象的編譯型語言
2.適用場景:系統程序的設計,包括嵌入式、桌面式和服務器操作系統的設計,大型軟件系統的核心模塊的設計,以及各類桌面軟件的設計
Java
1.特點:java是一個純面向對象的程序設計語言,屬于半解釋型語言
2.適用場景:互聯網信息系統的開發
Lisp
1.特點:屬于函數式程序設計語言
2.適用場景:用于符號演算、微分和積分演算,游戲推演、以及人工智能的其他領域
Prolog
1.特點:以特殊的邏輯推理形式回答用戶的查詢
2.應用:多用于數據庫和專家系統
Python
1.特點:是一種面向對象、解釋型計算機程序設計語言
2.適用場景:快速生成程序的原型,然后對其中有特別要求的部分,用更適合的語言改寫,比如3D游戲中的圖形渲染模塊
C#
1.特點:是一種面向對象的、運行于.NEX Framwork之上的高級程序設計語言
2.適用場景:由微軟公司發布的,主要用于構件.NET Windows網絡框架
匯編語言
匯編語言是面向機器的程序設計語言,使用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言反映成機器語言,這種起翻譯作用的程序叫做匯編程序,匯編程序輸入的是用匯編語言書寫的源程序,輸出的是用機器語言表示的目標程序,匯編語言的指令語句必須具有操作碼字段,可以沒有操作數字段
總結
以上是生活随笔為你收集整理的程序设计语言与语言程序处理程序基础(软件设计师备考笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 员工考勤管理系统c语言,员工考勤信息管理
- 下一篇: 2014年计算机基础知识试题及答案,20