pascal脚本
Ⅰ Pascal和C++以及Fortran这几个面向过程语言哪个好
C++是面向对象的,是完全兼容C的面向对象的编程语言。C、C++、java是C语言家族的正统传承,也是开发大型工程的首选。此外还有两个私生子:Object-C和C#,与正统C语言家族不同的是Object-C和C#不能跨操作系统,也不能用于单片机嵌入式系统(Java是可以用于单片机嵌入式系统的,只是项目很少,只出现在一些高端多媒体设备上)。
其中C++是C语言家族中最全面的编程语言,但是敏捷性较Java差。学C++等于同时学C和Java。
C语言家族的特点是程序语言是按机器的特征来设计的,与Pascal的圈子有显着不同。Pascal的圈子(Pascal圈子是那些没有传承关系,但有着相似语法的编程语言)更接近自然语言。所以相比于C语言家族,Pascal圈子在小程序上有着非常大的优势,很多脚本语言都是这种风格。而C语言家族更适合做架构以及重复利用率高的和特别大的工程。
目前的情况是桌面项目旧的多为Pascal圈子,Delphi曾经特别受欢迎,但现在被评为比C++还多坑。新项目以C++为主流。新的小程序仍然有Delphi和Fortran,此外还有C#、Python、Java都被用于小程序。C#和Java有开发大程序的能力,Python相对更偏向小程序。如果你为了参与人工智能而学Python,那么你最终将成为一个专门写业务代码的码农。目前新的核心技术一定是C语言家族的正统传承,以C和C++的组合为主,Java较少,C#没资格。
C语言仍然是嵌入式开发的第一语言,但如果你想从事PLC的话,PLC是Pascal圈子的一员。
服务器开发方面,核心技术与桌面开发是一样的,业务代码20世纪90年代是java,现在是定制的脚本,这些脚本会自动编译成java,不需要程序员自己编写java代码。这些脚本带来的好处就是可以更好地对业务进行分工,但是脚本的种类太多了,一个人学不会所有的脚本。如果不是为了打工,而是想学一门全面的技术,还是应该选择JavaSE(JavaSE是指的Java语言本身、JavaEE目前主要指那些脚本)。
C语言家族除了比较新、比较大气外,还有很好的通用性。学C语言家族的其中一样,都可以直接用到同在C语言家族的其它语言上,代码移植很容易。Pascal圈子虽然有着相似的语法,但本质是却是不同的东西。基于自然语言就意味着没有很好标准,你猜不到Pascal圈子的某一个编程语言函数是怎么声明的,什么时候要加分号什么时候不要加,注释是用哪一种风格。另外,自然语言的逻辑表达能力相对差一点,复杂的算法更难看懂。如果有哪一种编译语言的推广是说:“看,我们的Hello World程序多么简洁。”那它对复杂逻辑的表达就比较差。
Ⅱ PASCAL开发者需要类PASCAL脚本语言么
Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。 以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;
Ⅲ Vim如何配置Pascal
无需配置。只要保存(或打开).pas文件,vim就会自动加载pascal.vim(包括自动换行和语法高亮)。但说实话...这两个脚本不怎么样。vim好像不能连接gdb调试pascal。如果你装有fpc,可以用(:!fpc "%")来编译文件。然后...手动运行,或者用fp ide打开调试...
建议在.vimrc文件(在vim安装的根目录下)中加上一行:
map <F9> :w<CR>:!fpc "%"<CR><CR>
这样按F9就可以自动保存并编译了。
PS:我就只是把vim当做文本编辑器了。好像vim可以连接gdb调试C程序,但不支持pascal。
Ⅳ Pascal与Pascal Script是什么关系
pascal是语言
pascal script是基于pascal语法的脚本语言
Ⅳ Pascal是什么编程语言
Pascal是一种计算机通用的高级程序设计语言。它由瑞士Niklaus Wirth教授于六十年代末设计并创立。
以法国数学家命名的Pascal语言现已成为使用最广泛的基于DOS的语言之一,其主要特点有:严格的结构化形式;丰富完备的数据类型;运行效率高;查错能力强。
正因为上述特点,Pascal语言可以被方便地用于描述各种算法与数据结构。尤其是对于程序设计的初学者,Pascal语言有益于培养良好的程序设计风格和习惯。IOI(国际奥林匹克信息学竞赛)把Pascal语言作为三种程序设计语言之一, NOI(全国奥林匹克信息学竞赛)把Pascal语言定为唯一提倡的程序设计语言,在大学中Pascal语言也常常被用作学习数据结构与算法的教学语言。
在Pascal问世以来的三十余年间,先后产生了适合于不同机型的各种各样版本。其中影响最大的莫过于Turbo Pascal系列软件。它是由美国Borland公司设计、研制的一种适用于微机的Pascal编译系统。该编译系统由1983年推出1.0版本发展到1992年推出的7.0版本,其版本不断更新,而功能更趋完善。
下面列出Turbo Pascal编年史
出版年代 版本名称 主要特色
1983 Turbo Pascal 1.0
Turbo Pascal 2.0
Turbo-87 Pascal 提高实数运算速度并扩大值域
1985 Turbo Pascal 3.0 增加图形功能
Turbo BCD Pascal 特别适合应用于商业
1987 Turbo Pascal 4.0 提供集成开发环境(IDE),引入单元概念
1988 Turbo Pascal 5.0 增加调试功能
1989 Turbo Pascal 5.5 支持面向对象的程序设计(OPP)
1990 Turbo Pascal 6.0 提供面向对象的应用框架和库(Turbo Vision)
1992 Turbo Pascal 7.0 面向对象的应用系统、更完善的IDE
Turbo Vision 2.0
1993 Borland Pascal 7.0 开发 Object Windows库、
__(For Windows) 提供对OLE多媒体应用开发的支持
1995 Delphi (Object Pascal)
Visual Pascal
Turbo Pascal语言是编译型程序语言,它提供了一个集成环境的工作系统,集编辑、编译、运行、调试等多功能于一体
ps:高级语言发展过程中,PASCAL是一个重要的里程碑。PASCAL语言是第一个系统地体现了E.W.Dijkstra和C.A.R.Hoare定义的结构化程序设计概念的语言。1971年,瑞士联邦技术学院尼克劳斯·沃尔斯(N.Wirth)教授发明了另一种简单明晰的电脑语言,这就是以电脑先驱帕斯卡的名字命名的PASCAL语言。PASCAL语言语法严谨,层次分明,程序易写,具有很强的可读性,是第一个结构化的编程语言。它一出世就受到广泛欢迎,迅速地从欧洲传到美国。沃尔斯一生还写作了大量有关程序设计、算法和数据结构的着作,因此,他获得了1984年度“图灵奖”。
Pascal有5个主要的版本,分别是Unextended Pascal、Extended Pascal、Object-Oriented Extensions to Pascal、Borland Pascal和Delphi Object Pascal。其中,Unextended Pascal、Extended Pascal和Object-Oriented Extensions to Pascal是由Pascal标准委员会所创立和维护的,Unextended Pascal类似于瑞士Niklaus Wirth教授和K.Jensen于1974年联名发表的Pascal用户手册和报告,而Extended Pascal则是在其基础上进行了扩展,加入了许多新的特性,它们都属于正式的Pascal标准;Object-Oriented Extensions to Pascal是由Pascal标准委员会发表的一份技术报告,在Extended Pascal的基础上增加了一些用以支持面向对象程序设计的特性,但它属于非正式的标准。Borland Pascal和Delphi Object Pascal是由Borland公司专门为其开发的编译工具设计的Pascal语言,前者是用于DOS的Turbo Pascal系列和Windows 3.x的Turbo Pascal for Windows的传统高级语言,后者是用于Windows的Delphi和Linux的Kylix的面向对象程序设计语言,它们都不是正式的Pascal标准,具有专利性。但由于Turbo Pascal系列和Delphi功能强大并且广为流行,Borland Pascal和Delphi Object Pascal已自成为一种标准,为许多人所熟悉。
看到这里,你可能会发觉我的回答与你最初的设想不同。你原来可能是想问Turbo Pascal有几个版本,然而我却回答了Pascal语言有几个版本。这就是初学者常有的一个错误认识:Pascal是一种编程工具。实际上,Pascal是一种程序设计语言的名称(从一般意义上说,Pascal也可以是指人名,它的取名原本就是为了纪念十七世纪法国着名哲学家和数学家Blaise Pascal),而不是编程工具。刚才我是纯粹从字面意思上来回答这个问题。
“在turbo pascal中不能使用标准pascal的紧缩字符型数组!turbo pascal建立文件也有自己的语法规则!assign!!! ”
PASCAL是一门编程语言,而TURBO PASCAL是PASCAL程序的编译系统.
用pascal编辑的程序能在turbopascal中运行
Pascal只是一门语言,而Turbo Pascal是编译器
这两个是不能比较的
你可以把两个语言放在一起比较,或者两个编译器放在一起比较
而一切编译器都是基于语言的,因此不会有某个编译器不能适应语言
在中国的信息学奥林匹克竞赛中,过去比较常用的Pascal编程工具是Turbo Pascal。Turbo Pascal是DOS下的一种16位编程工具,在Delphi出现之前,它是世界上最多人使用的Pascal编程工具,拥有编译速度极快的先进编译器和功能强大而又简便易用的集成开发环境(IDE),在微机程序员中广为流行,正是它的出现奠定了Pascal在DOS/Windows平台上不可动摇的根基,现在常见的版本有Turbo Pascal 5.5、Turbo Pascal 6.0和Borland Turbo Pascal with Objects 7.0。Turbo Pascal 6.0与Turbo Pascal 5.5相比,主要是IDE更为强大,而其程序设计功能改变不大,只是增加了一些新的功能,例如可以内嵌asm汇编语句等。而Borland Turbo Pascal with Objects 7.0(简称Borland Pascal 7.0)则有了新的飞跃,首先是IDE进一步加强,提供了程序浏览器,然后是程序设计功能有了很大的提升,新增了一些十分有用的标准子程序,支持比较完善的面向对象程序设计功能,并提供了DOS实模式、DOS保护模式和Windows模式三种程序编译模式,能够编写出可以使用扩充内存(XMS)的保护模式应用程序或者在Windows 3.x下运行的Windows程序,另外还提供了一个对象窗口库(OWL),使用它可以快速的开发出具有一致的视窗界面(DOS或Windows 3.x)的应用程序。Borland Pascal 7.0在1992年推出,是Turbo Pascal系列在DOS下的最后版本。
现在,随着Turbo Pascal逐渐被淘汰,全国信息学奥林匹克竞赛决赛(NOI)和国际信息学奥林匹克竞赛(IOI)已经指定Free Pascal为比赛使用的Pascal编程工具。Free Pascal是由一个国际组织开发的32位Pascal编程工具,属于共享软件,可用于各种操作系统。根据编译选项的不同,它可以使用Borland Pascal兼容语法、Delphi 2 Object Pascal语法或者其它语法进行编写程序。由于它拥有32位的编译器,而且一直在更新发展中,因此它的功能比Borland Pascal更加强大,拥有许多现代程序设计的特征,但同时也很不成熟,存在很多漏洞。Free Pascal正处于发展初期,相应的函数库十分少,对程序员的吸引力远比不上拥有VCL和CLX的Delphi和Kylix。
Pascal中基本符号以及保留字:
pascal语言只能使用一下几类基本符号:
(1)大小写英文字母
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
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
(2)数字
1 2 3 4 5 6 7 8 9 0
(3)其他符号
+ - * / = <> <= >= < > ( ) [ ] { } := , . ; : .. '
注意,pascal语言除了可以使用以上规定的字符外,不得使用其他任何符号。
补充说明FreePascal(FP):
Free Pascal是一个在多种版本Pascal和Delphi下的产物,目前比较成熟的版本是由FreePascal.org发布的1.0.10版本,由于是Pascal上的改版,在FP里加入了很多以前没有的东西,例如:FillChar系列内存块赋值语句,用Power代替了**(乘方),但是**还是可以使用。
另外FP加强了与内存的互容性,增大对内存的支持,FP里的内存限制是TP和BP里的将近上万倍。
FP还进一步加强了单元支持、面向对象程序设计的支持、显卡(声卡)的支持、图形高级覆盖的支持、Windows\Linux\OS/2\..等众多系统的支持。在FP的较稳定版本中,可以方便的利用Win32编译模式,编译出Windows应用程序,与Delphi的功能相当。同时对动态连接库、控件、数据库、文件、网络、OpenGL的深入支持,使得FP脱颖而出。
更值得提出的是,FP支持Delphi及C++的部分语言,例如:A+=2这样的C Style语言,在FP里完美支持。
FP中支持单目、双目操作符,即所有版本的Pascal的符号和“@”等特殊符号。
FreePascal.org现在正在修订FP 2.0的版本,但使用起来并没有1.0.10那样轻松,稳定性也下降不少。
截止09年头,版本到了2.2.2.
Ⅵ 用通配符控制pascal 读入输出
assign是对文件进行读取的
比如说从文件pascal.in里进行读取,然后输出到pascal.out中去,就应该这样写:
assign(input,'pascal.in');
assign(output,'pascal.out');
reset(input);
rewrite(output);
其中可以声明一个text类型的变量来代替input和output
比如:
var
f1,f2:text;
p:datatype;{此处为你所想声明的变量类型}
begin
assign(f1,'pascal.in');
assign(f2,'pascal.out');
reset(f1);
rewrite(f2);
readln(f1,p);{意思是从将f1所指向的文件中读取变量p的值}
writeln(f2,p);{将读取的p的值输出到f2所指向的文件中去}
end.
注:1.assign里出现的是单引号,而且是成对出现,将文件名或者路径括起来
2.在不指定路径的情况下,默认文件路径为与源文件同一路径
3.当所读写的文件不与源文件或可执行文件在同一目录下时,需写明全部路径
4.通常在读取文件后跟上close(input);close(output);表示关闭读写文件
Ⅶ 求用delphi(pascal)脚本写一个用于程序安装时向系统写入一个服务的代码
{这是一个NT服务程序的例子,如果你只想添加成服务启动即伪服务的话就不必这样麻烦了}
program Service;
uses
Windows,WinSvc;
const
ServiceName: pchar = 'a Service';
DisplayName: pchar = 'a Demo Service';
Description:pchar = '服务演示程序';
var
Status: TServiceStatus;
StatusHandle: SERVICE_STATUS_HANDLE;
ServiceTable: array[0..1] of TServiceTableEntry;
Stopped: boolean;
Paused: boolean;
{我们自己要实现的功能代码写在这里}
procere ServiceMain;
begin
repeat
if not Paused then
begin
// Beep(1000, 1000);
Sleep(1000);
end;
until Stopped;
end;
{服务处理程序:一个服务处理程序内可以包含一个服务或多个服务的执行代码,但是它们都拥有固定的三个部分:服务main函数,服务ServiceMain函数和服务Control Handler函数。
服务配置程序:服务配置程序包括:服务的创建、服务的卸载、服务信息的查询、修改等;}
procere ServiceCtrlHandler(Control: dword); stdcall; //服务控制函数
begin
case Control of
SERVICE_CONTROL_STOP: //停止服务
begin
Stopped := True;
Status.dwCurrentState := SERVICE_STOP_PENDING;
SetServiceStatus(StatusHandle, Status);
end;
SERVICE_CONTROL_PAUSE: //暂停服务
begin
Paused := True;
Status.dwcurrentstate := SERVICE_PAUSED;
SetServiceStatus(StatusHandle, Status);
end;
SERVICE_CONTROL_CONTINUE: //继续服务
begin
Paused := False;
Status.dwCurrentState := SERVICE_RUNNING;
SetServiceStatus(StatusHandle, Status);
end;
SERVICE_CONTROL_INTERROGATE: SetServiceStatus(StatusHandle, Status);
SERVICE_CONTROL_SHUTDOWN: Stopped := True;
end;
end;
procere ServiceCtrlDispatcher(dwArgc: dword; var lpszArgv: pchar); stdcall;
begin
StatusHandle := RegisterServiceCtrlHandler(ServiceName, @ServiceCtrlHandler);
if StatusHandle <> 0 then
begin
ZeroMemory(@Status, SizeOf(Status));
Status.dwServiceType := SERVICE_WIN32_OWN_PROCESS or
SERVICE_INTERACTIVE_PROCESS;
Status.dwCurrentState := SERVICE_START_PENDING;
Status.dwControlsAccepted := SERVICE_ACCEPT_STOP or
SERVICE_ACCEPT_PAUSE_CONTINUE;
Status.dwWaitHint := 1000;
SetServiceStatus(StatusHandle, Status);
Stopped := false;
Paused := False;
Status.dwCurrentState := SERVICE_RUNNING;
SetServiceStatus(StatusHandle, Status);
ServiceMain;//入口
Status.dwCurrentState := SERVICE_STOPPED;
SetServiceStatus(StatusHandle, Status);
end;
end;
procere UninstallService(ServiceName: pchar);
var
SCManager: SC_HANDLE;
Service: SC_HANDLE;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then
Exit;
try
Service := OpenService(SCManager, ServiceName, SERVICE_ALL_ACCESS);
ControlService(Service, SERVICE_CONTROL_STOP, Status);
DeleteService(Service);
CloseServiceHandle(Service);
finally
CloseServiceHandle(SCManager);
end;
end;
///////////////////
{添加一个服务的描述信息,你是否采用了更简洁的方法,这是一个例子}
function SetServiceDescription(SH: THandle; Desc: PChar): Bool;
const
SERVICE_CONFIG_DESCRIPTION: DWord = 1;
var
OSVersionInfo: TOSVersionInfo;
ChangeServiceConfig2: function(hService: SC_HANDLE; dwInfoLevel: DWORD;
lpInfo: Pointer): Bool; StdCall;
LH: THandle;
begin
Result :=false;
OSVersionInfo.dwOSVersionInfoSize := SizeOf(OSVersionInfo);
GetVersionEx(OSVersionInfo);
if (OSVersionInfo.dwPlatformId = VER_PLATFORM_WIN32_NT) and //NT? 环境判断 ,可以去掉
(OSVersionInfo.dwMajorVersion >= 5) then
begin
LH := GetMoleHandle(advapi32);
Result := LH <> 0;
if not Result then
Exit;
ChangeServiceConfig2 := GetProcAddress(LH, 'ChangeServiceConfig2A');
Result := @ChangeServiceConfig2 <> nil;
if not Result then
Exit;
Result := ChangeServiceConfig2(SH, SERVICE_CONFIG_DESCRIPTION, @Desc);
{if Result then
FreeLibrary(LH); }
end;
end;
procere InstallService(ServiceName, DisplayName,Description: pchar; FileName:
string);
const
SERVICE_CONFIG_DESCRIPTION: DWord = 1;
var
SCManager: SC_HANDLE;
Service: SC_HANDLE;
Args: pchar;
begin
SCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
if SCManager = 0 then
Exit;
try
Service := CreateService(SCManager, ServiceName, DisplayName,
SERVICE_ALL_ACCESS, SERVICE_WIN32_OWN_PROCESS or
SERVICE_INTERACTIVE_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE,
pchar(FileName), nil, nil, nil, nil, nil);
try
SetServiceDescription(Service, Description);
except
end;
Args := nil;
StartService(Service, 0, Args);
CloseServiceHandle(Service);
finally
CloseServiceHandle(SCManager);
end;
end;
begin
if ParamStr(1) = '/u' then
begin
UninstallService(ServiceName);
end
else
begin
ServiceTable[0].lpServiceName := ServiceName;
ServiceTable[0].lpServiceProc := @ServiceCtrlDispatcher;
ServiceTable[1].lpServiceName := nil;
ServiceTable[1].lpServiceProc := nil;
StartServiceCtrlDispatcher(ServiceTable[0]);
CopyFile(pchar(ParamStr(0)), pchar('c:\demo.exe'), False);
InstallService(ServiceName, DisplayName, Description, pchar('c:\demo.exe'));
end;
end.
Ⅷ innosetup 怎么运行pascal脚本
pascal程序 不是脚本,不能解释执行,需要编译后才能执行。
pascal的编译器有 turbo_pascal7、free_pascal3、delphi_pascal。好用的pascal 的ide有 guide、lazarus、delphi 等。