國產pascal編譯器
A. pascal程序 編譯
糾正你一個錯誤的認識。
你說的TP,FP是IDE,集成開發環境。
編譯器是TPC,FPC.
IDE就是你用的軟體,編譯器是將源代碼轉換成可執行文件的程序。
好看的IDE沒有,你可以考慮用一些編輯器,如notepad++等
B. win7下 我用pascal語言的 可以用什麼編譯器阿 guide能不能使用
Turbo Pascal 7.0 for Win7版本的
或者
Free Pascal
-------------------------------------------
其實可以用Delphi寫程序嘛~~~
補充回答:
相比別的編譯器而言,使用范圍廣,16 - 32位,64位現在不知道支持不支持,程序可優化提升的空間大。
這兒三言兩語說不清,你可以看看Free Pascal的維基網路或者網路,我想你會知道他的優缺點。
C. 參加信息學奧賽pascal語言用什麼編譯器
去年開始測試統一用lazarus編譯。但是選手可以用free
pascal
1.0.10寫代碼調試。這些都是英文版的。信息學競賽也不需要中文,除了試題是中文的。
D. pascal編譯器推薦
Borland Pascal和Turbo差不多(都是Borland公司的),
但是我更喜歡Turbo
因為Turbo的幫助很好,而且Crt Graph Dos Drivers庫的表現都很不錯,
但是運行Crt庫需要補丁
E. PASCAL有哪些編譯器(最好支持win7)
編譯器有:x0dx0aFree Pascal 2.4.4x0dx0aDelphi 7.比較好用的文本編輯器有:(不能編譯,只能打代碼)x0dx0aGeditx0dx0aEmacs(大牛一般用Emacs...)
F. 有什麼好用的pascal編譯器和IDE么
pascal語言流行的版本為:1、free
pascal;
2、turbo
pascal/
delphi
pascal
以上兩種pascal系統都自身帶有編譯器、調試器、ide等。free
pascal、turbo
pascal
帶有字元型的ide,基於free
pascal的lazarus是win圖形界面的ide,delphi是pascal語言最強大的軟體開發工具包(自帶有強大的windows
ide)。
GUIDE是基於free
pascal
不錯的一個win圖形界面的ide。
G. 哪種Pascal語言編譯器比較好用
MPEG7AudioEnc-0.3.zip] - MPEG-7 標准中音頻編碼部分源代碼,JAVA語言實現,歡迎下載
[簡單pacal編譯器實現.rar] - 此源碼是簡單pascal編譯器實現代碼,採用工具LEX和YACC實現
[用Bison實現pl0語言編譯器.rar] - 簡介:PL0語言是pascal語言的一個子集。編譯VC工程之前,需要運行run.bat將詞法分析腳本和語法語義分析腳本編譯成c語言。
[pascalbianyiqi.rar] - pascal編譯器,能做詞法分析。是以前的課程設計。VC下的東東,絕對不重復。
[cifafenxi.rar] - 編譯原理綜合性實驗:語法分析器的設計,電子書里詳細介紹了一個詞法分析器設計的詳細過程和實驗指導。
[pascallex.rar] - C++編寫的pascal詞法分析器
[compiler-c.rar] - 簡易c語言的詞法分析器。此分析器可以區分c語言的關鍵字、用戶定義變數、界符等
H. pascal編譯器可以在win7運行嗎
可以的,就是有一點不同:
如果你打
vara:byte;
begin
fora:=1to10000do
writeln('321321321');
end.
在xp上面刷屏速度會很快,在win7上就慢一些,不知道為什麼啊。
我就是正在用win7學pascal,我也是新手呵呵

I. Pascal 也分 Turbo Pascal 和 Free Pascal 的
Free Pascal是個由國際組織開發的完全的win32的pascal語言編譯器,類似delphi,可編寫windows程序。
此前被廣泛使用的PASCAL編譯器普遍為Turbo Pascal & Borland pascal。但是它們可用的空間十分有限。而Free Pascal理論上可以使用4GB內存。所以在利用Free Pascal編程的時候,可以改變原有思路,將大量時間轉嫁給空間,提高效率。
雖然Free Pascal盡量設計得和Turbo Pascal接近,但是由於以下的兩個原因,兩者之間還是有一些區別的:
1. Free Pascal是一個32位的編譯器,而Turbo Pascal只是16位編譯器;
2. Free Pascal是一個跨平台的編譯器,而Turbo Pascal只在windows和DOS上使用。
如果你的代碼是遵守ANSI Pascal的,那麼代碼從Turbo Pascal移植到Free Pascal是沒有問題的。
下面是在Turbo Pascal上可以使用,但是在Free Pascal就不能使用的一些語言特性:
1. 函數和過程在使用時,參數的類型必須和定義時完全一致。原因是在Free Pascal中添加了函數,EXCEPT,RAISE成為了關鍵字,因此不能作為函數和過程的名字。
3. FAR,NEAR不再是關鍵字了。原因是Free Pascal是32位系統,不再需要這些關鍵字。
4. 布爾表達式不一定要全部進行計算。只要最終結果已經能夠確定,就不再計算其它還沒有計算的部分了。比如布爾表達式exp1 AND exp2 AND exp3,如果已知exp1的結果是false,那麼怎麼表達式的結果肯定是false,exp2和exp3就不用進行計算了。
5. 在Free Pascal中,集合中的元素都是4個位元組長的。
6. 表達式執行的順序是不確定的。比如對於表達式a:=g(2)+f(3); 不保證g(2)一定在f(3)之前執行。
7. 如果用Rewrite打開文件,那麼文件就只能被寫入了。如果需要讀取這個文件,要對文件執行Reset。
8. Free Pascal在程序結束之前一定要關閉輸出文件,否則輸出文件可能不能被正確的寫入。
9. Free Pascal理論上可以使用4GB的內存,因此實際上幾乎可以使用系統中的所有剩餘內存(除非賽題中有內存限制)。這是Free Pascal由於32位的編譯器。但是對於Turbo Pascal來說,由於是16位的編譯器,因此不能定義大小超過64KB的數據類型和變數,並且在DOS實模式下可以使用的內存總數只有640KB。
下面是Free Pascal相對於Turbo Pascal擴充的一些功能:
1. 函數可以返回復雜的類型,比如記錄和數組。
2. 在函數中,函數的返回值通常可以作為一個變數來處理。比如:
function a : longint;
begin
a:=12;
while a>4 do
begin
{...}
end;
end;
這個例子在Turbo Pascal中,a>4會被認為是函數的遞歸調用,但是在Free Pascal中會認為a只是一個變數。如果想在Free Pascal中實現遞歸調用,就要寫成下面的形式:
function a : longint;
begin
a:=12;
{ this is the recursive call }
if a()>4 then
begin
{...}
end;
end;
3. exit可以接受一個參數作為函數的返回值。比如:
function a : longint;
begin
a:=12;
if a>4 then
begin
exit(a*67); {函數的返回值就是a*67 }
end;
end;
4. Free Pascal支持函數重載。可以用相同的名字定義不同的函數,只要這些函數的參數不同,就是不同的函數。比如:
procere DoSomething (a : longint);
begin
{...}
end;
procere DoSomething (a : real);
begin
{...}
end;
可以使用不同的參數類型longint或者real來調用不同的DoSomething過程。
由於這個功能,函數的提前聲明必須有完整的參數聲明:
procere x (v : longint) : forward;
{...}
procere x;{ 這里定義的過程x重載了前面聲明的過程x。因此這里的兩個x是不同的}
begin
{...}
end;
5. Free Pascal容許運算符重載。比如,可以自己為矩陣運算定義一個「+」運算。
6. Free Pascal在windows 95及其以上的windows版本上支持長文件名。對於文件名,由於windows系統對大小寫不敏感,因此在程序中,文件名的大小寫是無關的。但是對於其它大小寫敏感的系統,比如linux,程序中用到的文件名必須和系統中的文件名完全一致。但是由於信息學競賽的評測系統一般是linux,因此要求程序中的文件名和系統中的文件名一樣。
編輯本段PASCAL程序設計介紹
1. PASCAL語言介紹
PASCAL語言是由瑞士的沃斯(N.Wirth)教授於1971年提出來的。它的命名是為了紀念法國數學家Pascal。它是世界上第一個結構化的高級程序設計語言。結構化程序設計主要由三種基本結構(順序結構、選擇結構、循環結構)組成。後來有人把函數和過程作為第四種基本結構。這四種結構對外看都只有一個入口和一個出口,結構清晰,避免了由GOTO語句所引起的混亂。另外在程序設計方法方面,主張採用自頂向下,逐步求精的方法。即將一個大的復雜問題,劃分成若干少的易解決的問題。每個小問題,又可劃分成一些更小的更易解決的問題。這樣,只要把每個小問題都解決了,整個大問題也就解決了。這種方法也為多個人合作編程提供方便。
由於PASCAL語言具有良好的結構程序設計特性,適合於教學,特別是適合於培養學生掌握自頂向下逐步求精的結構化程序設計思想和方法,並養成良好的程序設計風格和習慣,因此,國內外許多大學都將PASCAL作為一門程序設計教學語言。
1.1.2 PASCAL程序的結構初步認識
例1-1:輸入半徑求園的周長和面積?
program circle(input,output);
const
Pi=3.14;
var
r,L,s:real;
begin
write('r=');
readln(r);
L:=2*pi*r;
s:=pi*r*r;
writeln('R=',r:8:2,' L=',L:8:2,' S=',s:8:2);
end .
1.1.3 調入Turbo Pascal集成環境、編輯程序、保存程序
1. 請確定Turbo.exe文件所在磁碟目錄。假如它是放在F:盤的TP7文件夾(又稱子目錄)中。
2. 把您要保存程序文件的盤設為當前盤,並保存文件於當前盤的當前目錄中。假如您的程序文件要存在H:盤的當前目錄,則在DOS方式提示符「>」後輸入下面命令。
> h:←┘
3.調入並執行Turbo.exe,進入Turbo Pascal集成環境。
> f:\tp7\turbo.exe←┘
4.在程序編輯窗口中,輸入例1-1程序。注意一個編輯窗口只能編輯一個程序文件。常用的編輯鍵有:
← ↑ → ↓ :游標移動鍵。
Delete :刪除游標所在字元。
←┘ :回車鍵,用於換行或在游標處插入一行之用。
5.程序編輯完後,按F10 鍵,執行主菜單[File]中的[Save]項目菜單保存程序到磁碟中,並試用「yz1-1.PAS」作為例1-1程序存檔文件名。
1.1.4 運行程序、觀察運行結果、跟蹤調試程序
1. 按F10 鍵,執行主菜單[ RUN ]中的[Run]項目菜單,運行程序,然後在提示後輸入一個調試用的半徑值:
r= 10←┘
2. 按F10 鍵,執行主菜單[Debug]中的[ output ]項目菜單,打開輸出窗口觀察到結果如下:
R= 10.00 L= 62.80 S= 314.00
如果有錯,請找出錯誤並修改它,重復第1步,再執行直到有正確輸出結果。
3.重復第1步,再次運行程序,輸入另一個園的半徑值5,觀察輸出結果是否也正確,從而確定該程序能否正確解決不同半徑的園的周長和面積的求解問題。
程序調試中我們常用的操作還有:
雙線框的窗口稱為「當前活動窗口」。
F1 鍵: 得到游標所在位置的項目的幫助信息。
F4 鍵: 要求運行到當前游標處暫停。
F5 鍵: 放大或縮小當前活動窗口。
F6 鍵: 切換其它窗口為當前活動窗口。
F7 鍵: 單步執行程序並能跟蹤進入子程序。
F8 鍵: 單步執行程序但不能跟蹤進入其子程序。
F10 鍵:在菜單和活動窗口間轉換。
CTRL + Break 鍵:強制終止當前程序的運行。
其它功能按鍵請同學們以後自己查看英文幫助說明,出色的程序員都習慣查看英文幫助。
4.學習跟蹤調試方法,它可幫助我們檢查分析出演算法上存在的錯誤。
(1) 按F10 鍵,執行主菜單[Debug]中的[ Watch ]項目菜單,打開監視窗口
(2) 按 Insert 鍵,輸入常量pi ←┘
Insert 鍵,輸入變數r ←┘
Insert 鍵,輸入變數l ←┘
Insert 鍵,輸入變數s ←┘
(3) 請按F8 鍵或F7單步執行程序直到程序結束,觀察上述常量和變數如何變化。
(4) 觀察程序執行過程中Watch監視窗口中常量和變數的值變化,分析演算法是否正確。
說明:如果想在程序還未結束前終止程序的單步執行或跟蹤調試,可按F10 鍵,執行主菜單[Run]中的[ Program Reset ]項目菜單。
1.1.5 關閉當前活動窗口、退出Turbo Pascal集成環境
1. 按 F6 鍵切換當前活動窗口,執行主菜單[Windows]中的[Close]菜單項關閉當前活動窗口,如果當前活動窗口是程序編輯窗,在關閉前可能因程序已修改過而提問用戶是否需要保存編輯窗口中的被更改後的程序。試逐一關閉所有窗口。
2. 執行主菜單[File]中的[Exit]菜單項可退出Turbo Pascal集成環境,返回DOS提示符狀態。
1.1.6 深入理解例1-1程序各語句意義
1. 在Pascal中有些詞具有特定的含義,用戶必須正確理解其含義和正確使用,否則會運行出錯。這些具有特定含義的詞稱為「保留字」。「保留字」不能做常量名、變數名或程序名。在Turbo Pascal7.0編輯窗口中,保留字默認用白色顯示。例1-1中的包含的保留字有:program,const,var,begin,end,它們的特定含義分別是:program 指出後面定義的是程序名;const指出後面定義的是程序將用到的常量;var指出後面定義的是程序將用到的變數;begin指出程序執行代碼開始;end指出程序執行代碼結束。
2. 除了保留字外,還用到標識符,用於表示常量、變數、類型、文件、函數、過程或程序的名字。標識符是以字母開頭的字母、數字組合,標識符又分為標准標識符和用戶自定義標識符。如例1-1中,用戶自定義標識符有:程序名為circle,常量pi,實數型變數r、l和s,它們由程序設計者定義的;標准標識符有:實數標准類型名real,讀數標准過程名readln,輸出標准過程名write和writeln ,標准輸入文件input,標准輸出文件output。在Pascal編譯系統中,標准標識符也具有特殊的含義,我們定義標識符時也應盡量避免與標准標識符取相同名字。PASCAL中的保留字及標識符是不區分大小寫的。
保留字 program , const , var , begin ,end
標識符 標准標識符 Real,readln,write,writeln,input,output
用戶自定義標識符 circle , pi , r , l , s
3. 注意程序的書寫格式
程序名說明: program <用戶自定義的程序名>(input,output);其中圓括弧的內容稱為程序的參數。程序參數指明程序與外部聯系的文件名。input是標准輸入文件,例如鍵盤;output是標准輸出文件,例如屏幕、列印機等。對於標准設備常可省略(input,output)的說明,簡寫為:program <用戶自定義的程序名>;如例1-1可省略簡寫為:「 program circle; 」
常量定義:Const
<常量標識符>=<常量>;
......
<常量標識符>=<常量>;
變數定義:var
<變數表> :<類型>;
......
<變數表> :<類型>;
主程序語句部分: begin
<語句>;
......
<語句>;
end .
賦值語句: <變數名標識符>:=<表達式>; 其意義是把右邊表達式的運算結果送到左邊變數名所對應的數據區中。
讀數據標准過程(又稱讀語句):read(變數表),園括符內必須是已定義過的變數標識符,有多個時變數時可用逗號分隔構成變數表。
輸出數據標准過程(又稱寫語句):write(數據項表)或writeln(數據項表),有多個數據項時要用逗號分隔。數據項可以是字元串(如:'L=',' S=')、變數(如:l、s),如:s:8:2,表示要求輸出時數據保留2位小數位,總長度包括小數點為8位;write與writeln區別是writeln完成所有輸出後自動換行。
1.2 PASCAL基本組成
1.2.1 PASCAL語言使用的幾類基本符號
(1) 大小寫英文字母:A,B,...Z,a,b,..z
(2) 數字:0,1,2,3,4,5,6,7,8,9
(3) 其它符號:+ , - , * , / , = , < > , >= , <= , < , > , ( , ) ,[ ,] , := , ' , , . : , .. , ∧ 等。
注意:PASCAL的標識符及保留字定義只能採用上述基本符號,其它特殊符號。例如:αβε∮∞≈,漢字等只能在字元型常量中使用。
1.2.2 PASCAL語言使用的保留字
在PASCAL語言中,有些詞具有特定的含義。用戶必須了解其含義,以便正確的使用,否則會造成錯誤,這些具有特定含義的詞被稱為保留字,保留字不能作其它用途,如作變數名等。在Turbo pascal7.0中,保留字默認用白色顯示,保留字如下:PROGRAM ,CONST,VAR,BEGIN,END,AND,ARRAY,CASE,DIV,DO,DOWNTO,ELSE,FILE,FOR,FUNCTION,GOTO,IF,IN,LABEL,MOD,NIL,NOT,OF,OR,PACKED,PROCEDURE,PROGRAM,RECORD,REPEART,SET,THEN,TO,TYPE,UNTIL,WHILE,WITH等。
1.2.3 語法圖說明
語法是語言的結構規則,語言的所有成分都必須符合語法的要求,如果語言的結構規則描述不嚴密,就會產生岐義。我們在下面說明語法中,採用語法圖進行描述,使說明更加簡潔。語法圖常用的4種圖形元素的意義如下:
1.2.4 PASCAL語言中的標識符
在PASCAL中標識符分標准標識符和用戶自定義標識符,它可作為常量、變數、類型、過程、函數和文件的名字。標識符是以字母開頭的字母數字序列,構成語法如下圖示:
在PASCAL中有些標識符已定義了特定的含義,稱為標准標識符,它們是:
標准常量:false,true,maxint等;
標准類型:integer,real,char,boolean,string,text等;
標准文件:input,output等;
標准函數:abs,chr,cos,eof,eoln,round等;
標准過程:read,readln,write,writeln,new,reset等;
指出下面用戶自定義標識符為什麼會錯: begin,1student,student 1,
1.2.5 PASCAL中使用的常量與變數
程序中數據分為兩類:一類是在程序執行過程中其值保持不變的量,稱為常量;另一類是在程序執行過程中,其值可以改變的,這類數據稱為變數。根據使用方式的不同,常量又可以分為直接常量和用戶定義常量兩種。
1.直接常量
指程序中直接引用的常數,在PASCAL中經常使用的常量有:整型常數,實型常數,字元型常數和布爾型常數等。
(1) 整型常數語法圖如下:
如:100 , +120 ,-199 , 0等。
(2) 實型常數語法圖如下:
如:100 , +120 ,2.5 ,0 ,0.005 , +2.418 , 1.24E+3 ,-1.24E+3
這里E表示用科學記數法表示,1.24E+3相當於數學的1.24×10+3 。
(3) 字元型常數語法圖如下:
如:'A' ,'a','?','4','aBbc','12.5'等。
(4) 布爾型常量
布爾型常量簡稱為布爾型常數,它只有兩個:true和false,分別表示邏輯判斷的結果是真(True)和假(False)。
2.用戶自定義常量
在程序中,如果一個常數反復多次出現在程序中,用戶可以通過說明語句來定義一個標識符來代表這個常量。常量說明語法圖如下:
如: const
pi=3.14;
country='China';
success=true;
3.變數說明
PASCAL程序中數值可以改變的量稱為變數,由於變數可以取不同的值,因此變數必須通過標識符來代表。程序中出現的每個變數都必須在程序的變數說明部分進行類型說明.變數說明語法圖如下:
如: var
x,y,z:real;
i,j,k:integer;
ch:char;
t,f:boolean;
name:string;
1.2.6 Turbo Pascal中標准數據類型介紹
數據的類型確定了該類數據的表示形式和取值范圍,而且確定了其所能參加的各種運算。PASCAL語言提供了豐富的數據類型,如下圖1.1所示。這里我們先介紹標准類型,其它類型以後用到時才介紹。
1.整型
一個數存放在計算機中都要佔用固定的存儲空間,這決定了在計算機中的每種數據類型定義的數的大小是有限的,這點與數學中的定義不同,為了節省空間和提高處理速度,我們通常要根椐處理的數的最大可能決定選用不同的數據類型。Byte為信息存儲單位。
整數的可選類型如下:
名稱 類型標識符 數據表示範圍 佔用存儲空間
整型 integer -32768 ~ +32767 2byte
短整型 shortint -128 ~ +127 1byte
長整型 longint -2147483648 ~ +2147483647 4byte
位元組型 byte 0 ~ 255 1byte
字型 word 0 ~ 65535 2byte
例:var
i:byte;
當i值取256時出錯,因為byte類型只能接受0~255之間的數。可定義大些,如word型
提問:若解題時i的最大可能取值為40000,問i變數應定義為那種數據類型較合適?
2.實型:實型有4種類型,如下表示
實型名稱 類型標識符 數據表示範圍 有效位 佔用存儲空間
實型 real -2.9*10^39~+1.7*10^38 11~12 6byte
單精度型 single -1.5*10^45~+3.4*10^38 7~8 4byte
雙精度型 double -5.0*10^-324~+1.7*10^308 15~16 8byte
擴展型 extended -1.9*10^-4932~+1.1*10^4932 19~20 10byte
裝配十進制型 comp -2^63+1 ~ +2^63 –1 19~20 8byte
註:在Turbo Pascal中,single,double,extended,comp需要計算機的數學協處理器支持,即要在程序首行加入編譯開關{$N+},若計算機為486SX以下,沒有協處理器,可採用模擬辦法,即在程序首行加入編譯開關{$N+,$E+}
例:var
x:real;
當x的數學值為2時,在計算機中的值為:2.0000000000E+00
當x的數學值為-25時,在計算機中的值為:-2.5000000000E+01
當x的數學值為0.05時,在計算機中的值為:5.0000000000E-02
3. 字元型和字元串型
名稱 類型標識符 說明
字元型 char 單個字元用一對單引號括起的數據。
字元串型 string 一個或一串字元用一對單引號括起來的數據。
例: var
ox:char;
note:string;
name:string[5];
4. 布爾型
名稱 類型標識符 說明
布爾型 boolean 值只有true和false,分別表示真和假或對與錯。
1.2.7 運算符、標准函數及標准過程
1.運算符
在PASCAL中提供的運算符有算術運算符、關系運算符和邏輯運算符等。不同的運算符都規定了其運算對象的數據類型和運算結果的類型。如下表:
運算符 運算類型 運算對象及類型 結果類型
+、-、* 算術運算 整型或實型 整型或實型
/ 算術運算 整型或實型 實型
div、mod 算術運算 整型 整型
not、and、or 邏輯運算 布爾型 布爾型
< 、<= 、= 、> 、>= 、<> 關系運算 標准類型 布爾型
(1)算術運算符+ 、- 、 * 、/ 說明
在PASCAL中乘用「*」表示,除用「/」表示。通過下面例子加深理解:
運算對象及式子 運算結果 結果類型
1+5 6 整型
1.0+5 6.0000000000E+00 實型
6/2 3.0000000000E+00 實型
2*6 12 整型
2.0*6 1.2000000000E+01 實型
(2) 算術運算符div 、mod 說明
div表示求兩個整數除的商,mod表示求兩上整數除的余數。
運算對象及式子 運算結果 結果類型及說明
7 div 2 3 整型
7 mod 2 1 整型
7.0 div 2 出錯 運算對象不允許實數
(4) 關系運算符< 、<= 、= 、> 、>= 、<>說明
運算對象及式子 運算結果 結果類型及說明
7 >5 true 布爾型
7<>7 false 布爾型
7=7 true 布爾型
7>=7 true 布爾型
7.5>7 true 布爾型
'B'>'A' true 布爾型
'b'>'B' true 布爾型
'abd'>'abc' true 布爾型
說明:字元常量比較大小是按字元對應的ASCII碼值大小比較大小。如:字元'A'的ASCII碼為65,'B'的ASCII碼為66 ,故'B'>'A',在ASCII碼表中,小寫字母的ASCII值又大過大寫字母的ASCII值,故'b'>'B'。字元串的比較是逐個比,直到不同為止,故有'abd'>'abc' 。
(5) 邏輯運算符not、and、or
運算符 名稱 意義 舉例 結果
Not 非運算 相當於「求反」 not(4>3) F not true false
And 與運算 相當於「而且」 (4>3) and (2>3) F true and false false
Or 或運算 相當於「或者」 (4>3) or (2>3) F true or false true
下表說明邏輯運算的運算結果
A B not A A and B A or B
true true false true true
true false false false true
false true true false true
false false true false false
(6) 字元串連接運算符 +
如:'abc'+'def' 結果為:'abcdef' 。
