程序語言與語言處理程序

軟考-軟件設計師

程序語言與語言處理程序

1.高級語言

解釋型 編譯型
解釋型語言,是在運行的時候將程序翻譯成機器語言,所以運行速度相對於編譯型語言要慢 編譯型語言在程序執行之前,有一個單獨的編譯過程,將程序翻譯成機器語言,以後執行這個程序的時候,就不用再進行翻譯了

C/C++ 等都是編譯型語言,而Java,C#等都是解釋型語言
雖然Java程序在運行之前也有一個編譯過程,但是並不是將程序編譯成機器語言,而是將它編譯成字節碼(可以理解爲一箇中間語言)。
在運行的時候,由JVM將字節碼再翻譯成機器語言。
腳本語言是一種解釋性的語言。
編譯程序生成源代碼的目標代碼,而解釋程序則不參生源代碼的目標代碼

2.程序語言分類

命令式程序設計語言 函數式程序設計語言
基於動作的預言。代表有:c語言,Fortran,Pascal 一種對應規則,主要應用於人工智能,是一種非馮·諾伊曼式的程序設計語言。代表:Lisp,ML
面向對象式程序設計語言 邏輯程序設計語言
面向對象和類的概念。面向對象的核心:封裝,繼承,多態,抽象。代表:Java,C++ 以形式邏輯爲基礎的語言。適用於書寫自動定理證明、專家系統、和自然語言理解等問題的程序。關鍵詞:Prolog

3.註釋的分類

序言性註釋 功能性註釋
通常位於程序的開頭,給出程序的整體說明,可以包括程序對硬件、軟件資源的要求,重要變量和參數的說明,程序的作者、審查者、變成日期、修改日期等,程序實現的功能描述 一般嵌於程序體之中,描述程序中相關語句的作用或註釋後程序段的要實現什麼功能

4.編譯型語言,編譯過程
源程序–>詞法分析–>語法分析–>語義分析–>中間代碼生成–>代碼優化–>目標代碼生成
詞法分析:非法字符,關鍵字,標識符拼寫錯誤。
語法分析:語法結構出錯,缺分號,判斷語句不匹配
語義分析:死循環,除數爲0,其他邏輯錯誤
注:中間代碼生成,代碼優化並不是每種編譯器都必須有。

5.有限自動機
確定的有限自動機A和不確定的有限自動機B等價,則:
A和B可是別的記號完全相同。
例題:在這裏插入圖片描述
解析在這裏插入圖片描述
技巧:代入數據挨個走,最後到終點則對

5.正則式
例題:在這裏插入圖片描述
解析:在這裏插入圖片描述
在這裏插入圖片描述 注:初入軟考,寫着自我方便複習,自己覺得容易考的就寫上面了,後面補充