代數規劃語言

代數規劃語言

代數規劃語言又稱計算機代數語言REDUCE2,計算機代數語言與數值計算語言相比最顯著的特點是適用於公式推導,比如,化簡數學表達式、求多項式的因式分解、求兩個多項式的最大公因式、符號地進行矩陣代數運算、求代數方程組的解的方式,求函式的微分和不定積分、求微分方程和積分方程的解析解、證明數字恆等式等等。

基本介紹

  • 中文名:代數規劃語言
  • 外文名:Algebraic programming language
  • 別名:計算機代數語言
  • 語種:REDUCE2
  • 類型:代數
  • 系統:計算機
技術簡介,表達式,字元集,數和算術運算,

技術簡介

計算機代數語言與數值計算語言相比最顯著的特點是適用於公式推導,比如,化簡數學表達式、求多項式的因式分解、求兩個多項式的最大公因式、符號地進行矩陣代數運算、求代數方程組的解的方式,求函式的微分和不定積分、求微分方程和積分方程的解析解、證明數字恆等式等等。
計算機代數語言REDUCE2的數類似於數值計算語言,但它能進行任意位數的準確運算。REDUCE 2的變數分為兩大類;一類是說明型變數,一類是非說明型變數。前者類似於數值計算機語言的變數;後者是一種不經說明而使用的變數,它有兩種狀態:賦值之前的狀態稱做自由狀態,這時變數稱為未定元(indeterminate),它以變數名本身為其值;賦值之後的狀態叫做受束狀態,這時的變數稱為點束變數(bound variable),它以被賦值的表達式為其值。顯然含有未定元的表達式是一個符號數學表達式,而不含未定元的表達式的值卻是一個數。可見,未定元是形成符號數學表達式的關鍵因素,是計算機代數語言的關鍵性概念之一。

表達式

REDUCE 2的表達式分為四類:數表達式,布爾表達式、等式和純量表達式。
在REDUCE2中:
<語句>::=<表達式>|<常態語句>
語句<表達式>用於計算表達式的值。表達式在求值時將所有含變數的值代入。
<常態語句>::=<賦值語句>|(條件語句>|<循環語句>|<轉向語句>|<複合語句>|<返回語句>
<賦值語句>::=<變數>:=<語句>
<條件語句>::=IF(<布爾表達式>|<等式>)THEN<語句>ELSE<語句>
其中ELSE(語句)部分可有可無。
<循環語句>::=FOR<變數>:=<表達式>STEP<表達式>UNTIL<表達式>(DO<語句>|SUM<表達式>|PRODUCT<表達式>)
計算機執行的是REDUCE 2命令,REDUCE 2程式是由命令構成的:
<命令>::=<語句><結束符>|<常態命令>
<結束符>::=;|$
<常態命令>::=<代換命令>|<過程命令>|<控制命令>|<說明命令>|<處理檔案命令>
為了便於用戶控制公式推導的過程和數學表達式列印的格式,REDUCE 2提供了豐富的開關和控制命令。為了直接用求得數學公式編制數值計算程式,REDUCE 2提供了編制FORTRAN程式的工具,此外,REDUCE 2還有連線LISP語言的工具。
計算機代數語言的關鍵是構成符號數學表達式的未定元概念和貯存公式推導規則的工具(代換命令)。它使人們擺脫使用筆和紙推導公式,使科學計算進入了一個新的時代。

字元集

REDUCE的字元集包括55個字元,語法可用巴科斯範式描述如下:
<字元>::=<字母>|<數字>|<算術運算字元>|<比較運算字元>|<特殊字元>
<字母>::=A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U||V|W|X|Y|Z
<數字>::=0|1|2|3|4|5|6|7|8|9
<算術運算字元>::=+|-|*|/
<比較運算字元>::=>|<|=
<特殊字元>::=(|)|,|.|:|;|”|’|!| |$|%
特殊字元所枚舉的第十個字元是“空格”字元。從語法上看,REDUCE不允許小寫字母,但事實上,REDUCE允許用小寫字母輸入,這時系統自動地將小寫字母轉換成大寫字母。此外,在某些計算機上運行的REDUCE版本使用更大的字元集。

數和算術運算

REDUCE有兩類數:整數和實型數。
<無符號數>::=<數字>|<無符號數><數字>
<整數>::=<無符號數>|+<無符號數>|-<無符號數>
例如,一2,000,+5396,123456789123456789等等都是整數。在原則上整數可以是任意位長的,事實上,在不同的計算機上運行的REDUCE不同版本都規定了自己的整數的最大長度。
<定點數>::=<整數>.|<整數>.<無符號數>
<浮點數>::=<定點數>E<整數>
<實型數>::=<定點數>|<浮點數>
例如,32.1,一32.1,十32.1都是定點數。注意:321.也是符合語法的定點數。而0.321E3和3210E一1都是浮點數。以上列舉的數都是實型數。實型數一定帶有小數點。
<數>::=<整數>|<實型數>
按照語法,.5,一.11,+.24,1.2E0.5,+1.2E0.5都不是REDUCE的數,如果將它們當作數使用則會發生錯誤。
算術運算符十、一、*和/依次表示四則運算加、減、乘和除。REDUCE是一種計算機代數語言,對數進行精確運算。當兩個整數進加、減和乘運算時所得結果是整數。當兩個整數相除時是消去公因數,得到的結果是個精確的既約分數或整數。

相關詞條

熱門詞條

聯絡我們