Linux中使用Perl修改文件当你编写脚本或是安装程序的时候,就需要修改特定文件的数据,如果这时有自动修改文件的功能,那将会是非常实用的。例如,当你需要移动一个文件中的某个字符串或是命令,当你要改变许多文件的IP地址的时候,这个功能就可以拿来利用了。手动改变这些文件会耗费很长的时间,特别当它是一件重复性的任务。但是,你可以使用Perl程序来完成。所有的Linux供应商都有这个程序。执行以下 *** 作:$perl-pi-e's|[old_string]|[new_string]|g'[file]字符串可以是简单的命令或是常规的表达式。如果你要改变目录的位置(例:从/var/spool/mail到/var/spool/messages),你想要改变目录/etc下的每个文件来反映路径变化。执行以下 *** 作:$find/etc-typef|xargsperl-pi-e's|\/var\/spool\/mail|\/var\/spool\/messages|g'在这个例子上,我们使用搜索和xargs来确保系统只运行常规文件的命令,而不是非常规目录或其它文件类型的命令。这也就运行了/etc目录树,而且会递归的改变所有文件。由于我们/标识,所以我们必须输入了像\/var这样的路径而不是/var。Linux中使用Perl修改文件时我们也可以在Perl表达式使用分隔符。(除了使用|,你也能够使用/,#,@作为分隔符。)执行以下 *** 作,从整个文件里移开一个命令$perl-pi-e's|myword||g'file这就从基本上没有使用任何东西却代替了“myword”(需要注意的是在第二个和第三个分隔符之间没有空格)。以这种方式使用Perl的话,当你修改配置文件或其它任何类型的数据的时候,你就会极具创造力。它就是一个自动搜索和代替的功能。
在过程调用中传递了一个无效参数。这可能是由于参数超出范围,或包含无效数据。另外,有可能在不适当的时间对过程进行了调用。
要纠正该错误
验证传递给过程的参数是有效的。
验证在适当的时间调用函数。
溢出
试图赋给变量的赋值太大,这是因为:
赋值,计算或者数据类型转换结果很大以至于不能代表此种类型变量值的范围。
属性赋值超出了属性所能接受的最大值。
整数类型数字的计算结果大于一个整数。
要纠正该错误
将值赋给一个较大取值范围的变量类型。
确保赋值符合属性范围。
内存不足
分配与该计算机有效内存一样多的内存。这可能是一个动态分配数组增长得太大,或者是对象实例数目过多。
要纠正该错误
使用Erase语句来重新分配动态数组的储存空间。
使用ReDim语句来重新分配储存空间。
关闭任何已经打开、不必需的应用程序,文件或者源文件。
下标越界
要访问的数组中元素数目比期望的少。例如试图从一个定义为10个元素的数组中访问到11个元素。
要纠正该错误
确保你的代码中包含检察元素是否越界的边界。
重新定义一个更大的数组大小至需要的维数。
该数组为定长的或者临时被锁定
试图用 ReDim 函数来改变一个定长数组的元素数目。动态数组或者 Variant 变量内的数组可以被暂时的锁定。
要纠正该错误
如果在过程内部定义数组,用 ReDim 函数将其从静态变为动态。
如果在模块水平上说明数组,不要指定数组中元素的数目。
被零除
创建一个试图将数字被零除的表达式。被零除得到无穷大(不可用)结果。
要纠正该错误
检查表达式的输入或大小写错误。
类型不匹配
试图比较不相容数据类型的值。例如,比较一个字符串和一个数值。
要纠正该错误
当进行比较时,要确保数据类型相同。
用一个的数据类型来计算另一个的值,然后重新比较。
字符串空间溢出
试图创建字符串对象时系统内存被用尽。这可能是因为动态分配数组越来越大或对象实例的数目过大。
要纠正该错误
使用 Erase 语句来重新分配动态数组的储存空间。
使用 ReDim 语句来重新分配储存空间。
关闭任何已经打开、不必需的应用程序,文件或者源文件
无法执行请求的 *** 作
当主机使脚本引擎中断时无法继续执行脚本。主机未指定明确的返回错误代码。
要纠正该错误
该错误的解决与主机有关。
堆栈溢出
过程嵌套太深。每次代码从一个过程跳到另一个过程,本地变量的内容被放到堆栈中。堆栈是一个大小随着要求执行的脚本动态增长和缩小的内存工作区域。
要纠正该错误
检查没有嵌套很深的过程。
确保递归(重入)过程没有经常的调用自身。
确保递归过程被正常终止。
未定义 Sub 或 Function
试图调用一个不存在的过程。
要纠正该错误
检查过程的拼写确保输入正确。
加载 DLL 错误
应用程序引用了一个无法找到的DLL,一个DLL可能引用了另一个无法找到的DLL。
要纠正该错误
确保DLL存在。
使用全路径名引用DLL。
获得被引用的DLL并使其对其他DLL有效。
内部错误
发生内部错误。
要纠正该错误
除非这是由Raise 方法产生,请与微软产品服务联系报告出现错误消息的情况。
未设置对象变量
试图使用无效对象的对象属性。如果遗漏了 Set语句,将在对象引用产生错误。
要纠正该错误
为对象变量指定一个引用。
For 循环未初始化
在脚本中执行跳到ForNext 循环中间的结果。由于ForNext 循环计数必须被初始化所以产生错误。下面演示了一个ForNext 循环的正确结构。
For counter = start To end [Step step] [statements] [Exit For] [statements] Next
要纠正该错误
移去跳转至ForNext 循环的语句。
确保ForNext循环包含了所有必须的部分。
非法使用 Null
试图获得一个为Null 的Variant变量的值。你只能获得包含有效值的Variant 变量的值。Null 是一个 Variant 一个用来指示一个数据项不包含任何有效数据的子类型。
要纠正该错误
确保变量包含有效数据。
需要对象
提供的对象无效(或无法认为是一个对象)。对属性和方法的引用需要一个显式的对象限定符。
要纠正该错误
提供一个对象限定符。
检查对象限定符的拼写。
ActiveX 部件无法创建对象
由于对象类未在系统注册表中注册或者是一个或多个相关的动态链接库无效(DLLs), VB 55运行时无法初始化对象。另外一种可能情况是,由于未找到或是已经损坏,对象所需的DLL不可用。
要纠正该错误
确保所有相关的DLLs有效。例如,数据存取对象(DAO)所需的DLLs在不同的平台下是不同的。你可能不得不返回到安装程序查找该对象。
Internet Explorer可能试图创建对象,但是在Internet Explorer中没有正确的安全许可。重置Internet Explorer 安全设置并重试。
类不支持自动化
试图 *** 作一个并不支持自动化的对象属性或方法。可以创建并将指针传递给不支持自动化的对象,但是不能获取它的属性和方法。
要纠正该错误
查创建对象应用程序的文档中关于该类自动化使用的限制。
注意 对象可能已经通过使用CreateObject 被创建,但可能已经通过主机对象模型被引入。
在自动化 *** 作中未找到文件名或类名
使用GetObject 函数,但是将一个不可识别的类或文件名作为参数。GetObject 函数要求包含要获取的对象的文件的完整的路径和名称,或者是在系统中注册过的类名称。
要纠正该错误
检查名称的拼写错误,然后重试。
确保class 参数的名称与在系统中注册的相匹配。
对象不支持该属性或方法
对该自动化对象指定了一个并不存在的属性或方法。不是所有的对象都支持所有的属性和方法。
要纠正该错误
检查属性和方法以确保没有打字错误。
参见对象的文档获取更多的信息。
对象不支持此 *** 作
试图引用该对象不支持的一个方法或属性。不是所有的对象支持所用的 *** 作。
要纠正该错误
检查属性和方法以确保没有打字错误。
参见对象的文档获取更多的信息。
对象不支持当前的区域设置
试图 *** 作一个不支持当前区域设置的对象。区域设置是和给定语言以及国家/地区相对应的一系列信息。本地影响预定义程序项的语言和本地特定设置。以下两种情况时本地信息很重要:
code locale 影响语言项例如关键词,并且定义本地特定设置例如小数和列表分割符,日期格式和字符排列顺序。
system locale 影响本地相关的功能执行。例如,当显示数字或者将字符串转换为日期时。使用 *** 作系统提供的控制面板工具来设定系统。
要纠正该错误
检查对象支持的区域设置。
未找到命名参数
调用一个过程并指定一个特别的参数,但是过程未被定义为接受以为名称的参数。除非在过程定义中出现,一个命名参数不能在过程调用中使用。
要纠正该错误
检查参数名称是否正确拼写,然后再试着调用过程。
参数不可选
调用过程但是参数数量错误。传递给过程的参数的数量必须与过程定义的参数数量相同。
要纠正该错误
检查函数符号确保提供了所有必须的参数。
错误的参数个数或无效的参数属性值
调用过程时如果:
错误的过程名称,
或者,
过程中参数数目错误,
或者,
参数类型错误。
传递给过程的参数数目必须与过程定义中的参数数目相符。
要纠正该错误
检查以确保传递给过程的参数列表与过程定义或声明中的相符。
对象不是一个集合
试图对一个不是 Collection 类型的对象进行只对 Collection 对象有效的 *** 作。有些属性、方法和 *** 作仅可应用于 Collection 对象。Collection 对象是包含一组互相关联的对象的一种对象。一旦集合中发生了改变,一个对象在 Collection 对象中的位置也会发生改变;因此,Collection 对象中的任何一个对象的位置都可能变化。
要纠正该错误
检查对象或属性名称的拼写。
验证对象是一个Collection 对象。
查看用来向集合中添加该对象的 Add 方法,确保语法正确且任何标识符的拼写都正确。
变量使用了 VB 不支持的自动化类型
试图使用类型库或者对象库中不被支持的数据类型,任何一门编程语言都不能使用类型库或对象库中的所有变量。
要纠正该错误
只使用VB识别的变量类型。
远程服务器不存在或者不能访问
用CreateObject函数 来建立一个远程机器的对象,但是调用失败,这是因为无法访问远程服务器或者没有包含特定的类。
要纠正该错误
检验远程服务器的名字是否正确。
检验远程服务器的 DCOM 可用。
使用 dcomcnfg 验证安全权限是否允许建立对象。
无效
试图加载一个无法识别格式的图像。有效格式包括位图(bmp),图标(ico),以及Windows 元文件(wmf)。
要纠正该错误
确保要加载的图像文件的格式是有效的。
变量未定义
在脚本开始处用Option Explicit 语句,后来又使用一个未被说明的变量名称。当使用Option Explicit 语句时,必须用Dim,Private,Public或者ReDim语句显式地说明所有的变量。
要纠正该错误
使用Option Explicit 语句时, 确保用Dim, Private, Public, Or ReDim语句定义了所有的变量。
脚本对象不安全
试图使用未被标识为脚本安全的对象。对象创建是否安全由主机决定。总的来说,允许不信任脚本进行有害 *** 作(例如 *** 作硬盘)的对象是不安全的。
例如,使用作为客户端的Microsoft Internet Explorer 运行 FileingObject 是不安全的,但是可以在带有Windows Host的本地机器使用该对象。
要纠正该错误
确保在使用一个安全的对象。
与对象开发者联系看是否为安全版本。
阅读对象文档发现该对象是否安全。
对象不能安全初始化
试图使用未被标识为初始化安全的对象。对象创建是否安全由主机决定。总的来说,允许不信任脚本进行有害 *** 作(例如 *** 作硬盘)的对象是不安全的。
例如,使用作为客户端的Microsoft Internet Explorer 运行 FileingObject 是不安全的,但是可以在带有Windows Host的本地机器使用该对象。
要纠正该错误
确保在使用一个安全的对象。
与对象开发者联系看是否为安全版本。
阅读对象文档发现该对象是否安全。
对象不能安全创建
试图使用一个未被标识为安全创建的对象。对象创建是否安全由主机决定。总的来说,允许不信任脚本进行有害 *** 作(例如 *** 作硬盘)的对象是不安全的。
例如,使用作为客户端的Microsoft Internet Explorer 运行 FileingObject 是不安全的,但是可以在带有Windows Host的本地机器使用该对象。
要纠正该错误
确保在使用一个安全的对象。
与对象开发者联系看是否为安全版本。
阅读对象文档发现该对象是否安全。
无效或不合格的引用
试图对不止一个对象使用With语句。With语句只能被非空对象使用。下面演示了一个With 块的正确结构。
With object statements End With
要纠正该错误
为With 语句指定一个对象。
类未定义
引用未定义(通过New 或 Set语句)的类。
要纠正该错误
确保在引用类之前已经定义。
发生异常
脚本调用COM对象,然后产生异常。
要纠正该错误
除非该调用由 Raise 方法产生,请与产生错误的CM对象开发人员联系。
请与微软产品服务联系报告出现错误消息的情况。
正则表达式中的语法错误
搜索字符串的结构违背了VB正则表达式中的一个或多个语法规则。
要纠正该错误
保证常规的搜索字符串的表达式符合Perlde的表达语法。
错误的数量词
当构造正则表达式的搜索模式时,没有正确的说明匹配的字符串。
要纠正该错误
确保搜索模式是正确构造的。
在正则表达式中需要 ']'
试图为正则表达式匹配创建一个字符类,但未包含右括号。将单独的字符组合放到方括号里可以将其装配到字符类中。例如, /[abc]/ 匹配字母“a”,“b”,或“c”中任意一个。
要纠正该错误
在正则表达式中添加右括号。
在正则表达式中需要 ')'
试图创建常规的嵌套表达式,但未包含“)”。在正则表达式中括号有几个目的。首先,它将分离的项组成为单个子表达式,所以项目可以通过,+,等等来当作一个单元来处理。
要纠正该错误
在常规的嵌套表达式中添加右(闭)括号“)”。
字符集越界
试图使用无效字符创建正则表达式。正则表达式是由字母数字和元字符组成的。
要纠正该错误
仅仅使用有效正则表达式字符来组成正则表达式。
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
开发工具:
集成开发环境是一种集成了软件开发过程中所需主要工具的集成开发环境,其功能包括但不仅限于代码高亮、代码补全、调试、构建、版本控制等。一些常见的PHP IDEs如下:
1、Zend Studio:商业版,Zend官方出品,基于eclipse
2、Eclipse with PDT:免费
3、Coda:商业版,针对Mac用户
4、NetBeans:免费,功能强大
5、PHP Storm:商业版
6、Aptana Studio:免费
7、PhpEd:商业版
8、Komodo IDE/Edit:IDE为商业版,Edit可免费使用
9、Adobe Dreamweaver:商业版
除去集成开发环境,具备代码高亮功能的常见文本编辑器因其轻巧灵活也常被选作开发工具,例如:Notepad++、Editplus、SublimeText、Everedit(国人开发)等等。
扩展资料:
PHP的特性包括:
1、PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。
2、PHP可以比CGI或者Perl更快速的执行动态网页——动态页面方面,与其他的编程语言相比,
PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成htmL标记的CGI要高许多;
PHP具有非常强大的功能,所有的CGI的功能PHP都能实现。
3、PHP支持几乎所有流行的数据库以及 *** 作系统。
4、最重要的是PHP可以用C、C++进行程序的扩展。
PHP优势:
1、开放源代码
所有的PHP源代码事实上都可以得到。
2、免费性
和其它技术相比,PHP本身免费且是开源代码。
3、快捷性
程序开发快,运行快,技术本身学习快。嵌入于HTML:因为PHP可以被嵌入于HTML语言,它相对于其他语言。编辑简单,实用性强,更适合初学者。
4、跨平台性强
由于PHP是运行在服务器端的脚本,可以运行在UNIX、LINUX、WINDOWS、Mac OS、Android等平台
5、效率高
PHP消耗相当少的系统资源。
6、图像处理
用PHP动态创建图像,PHP图像处理默认使用GD2。且也可以配置为使用image magick进行图像处理。
7、面向对象
在php4,php5 中,面向对象方面都有了很大的改进,php完全可以用来开发大型商业程序。
8、专业专注
PHP支持脚本语言为主,同为类C语言。
技术应用:
1、伪静态
2、静态页面生成
3、数据库缓存
4、过程缓存
5、div+cssw3c标准
6、大负荷
7、分布式
8、flex
9、桌面程序应用(不擅长)
10、支持MVC模型
11、Smarty模版引擎
参考资料:
-PHP (超文本预处理器)
解答过程如下:
1、$arr = array(1,2,3,5);//定义一个数组
2、$sum = 0;//定义一个求和后的变量
3、foreach($arr as $key => $item){ //foreach 遍历数组$key 是键值,$item 是元素值。
4、$sum += $item; //这句和 $sum = $sum + $item;是一个意思
5、}echo $sum;//输出求和后的变量值
PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
扩展资料:
关于使用php的相关事项:
1、PHP的解释运行机制:在 PHP 中,所有的变量都是页面级的,无论是全局变量, 还是类的静态成员,都会在页面执行完毕后被清空。
2、设计缺陷,缺少关注PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。
3、对递归的不良支持:PHP并不擅长递归。它能容忍的递归函数的数量限制和其他语言比起来明显少。
-php
程序设计语言,通常简称为编程语言,是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。
程序设计语言原本是被设计成专门使用在计算机上的,但它们也可以用来定义算法或者数据结构。正是因为如此,程序员才会试图使程序代码更容易阅读。
设计语言往往使程序员能够比使用机器语言更准确地表达他们所想表达的目的。对那些从事计算机科学的人来说,懂得程序设计语言是十分重要的,因为在当今所有的计算都需要程序设计语言才能完成。
在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言并对新手来说太难学;还有,不同程序之间的运行成本(runtime cost)各不相同。
有许多用于特殊用途的语言,只在特殊情况下使用。例如,PHP专门用来显示网页;Perl更适合文本处理;C语言被广泛用于 *** 作系统和编译器的开发(所谓的系统编程)。
高级程序设计语言(也称高级语言)的出现使得计算机程序设计语言不再过度地倚赖某种特定的机器或环境。这是因为高级语言在不同的平台上会被编译成不同的机器语言,而不是直接被机器执行。最早出现的编程语言之一FORTRAN的一个主要目标,就是实现平台独立。
虽然大多数的语言可以既可被编译(compiled)又可被解译(interpreted),但大多数只在一种情况下能够良好运行。在一些编程系统中,程序要经过几个阶段的编译,一般而言,后阶段的编译往往更接近机器语言。这种常用的使用技巧最早在1960年代末用于BCPL,编译程序先编译一个叫做“0代码”的转换程序(representation),然后再使用虚拟器转换到可以运行于机器上的真实代码。这种成功的技巧之后又用于Pascal和P-code,以及Smalltalk和二进制码,虽然在很多时候,中间过渡的代码往往是解译,而不是编译的。
如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,并之后运行内部格式,那么这个翻译过程就称为编译。因此,一个编译器是一个将可阅读的程序文本(叫做源代码)作为输入的数据,然后输出可执行文件(object code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行,或者是某种模拟器的二进制代码。
如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作解译。经解译的程序运行速度往往比编译的程序慢,但往往更具灵活性,因为它们能够与执行环境互相作用。参见解译语言。
目录
1 特点
11 数据和数据结构
12 指令及流程控制
13 引用机制和重用
2 程序设计语言的历史
3 常见的程序设计语言
4 参见
特点
每一种程序设计语言可以被看作是一套包含语法、词汇和含义的正式规范。
这些规范通常包括:
数据和数据结构
指令及流程控制
引用机制和重用
设计哲学
大多数被广泛使用或经久不衰的语言,拥有负责标准化的组织,经常会晤来创造及发布该语言的正式定义,并讨论扩展或贯彻现有的定义。
数据和数据结构
现代计算机内部的数据都只以二元方式储存,即开-关模式(on-off)。现实世界中代表信息的各种数据,例如名字、银行账号、度量以及同样低端的二元数据,都经由程序设计语言整理,成为高端的概念。
一个程序中专门处理数据的那个系统被称为程序语言的型态系统(type system);对型态系统的研究和设计被称为型态理论(type theory)。语言可以被分为静态型态系统(statically typed systems),例如C++和Java,和动态型态系统(dynamically typed systems),例如Lisp,JavaScript,Tcl和Prolog。前者可被进一步分为包含宣告型态(manifest type)的语言,即每一个变量和函数的型态都清楚地宣告,或type-inferred语言(例如MUMPS,ML)。
大多数语言还能够在内置的型态基础上组合出复杂的数据结构型态(使用数组,列表,堆栈,文件等等)。面向对象语言(Object Oriented Language,又译作“物件导向语言”)允许程序员定义新的数据型态,即“对象”或“物件”(objects),以及运行于该对象的函数(functions)和方法(methods)。
除了何时以及如何确定表达式和型态的联系,另外一个重要的问题就是语言到底定义了哪些型态,以及允许哪些型态作为表达式的值。诸如C编程语言之类的低端语言允许程序命名内存位置、内存区域以及编译时的常量;ANSI C甚至允许表达式返回结构值(struct values)。功能性的语言一般允许变量直接使用运行时计算出的值,而不是指出该值可能储存的内存地址。
指令及流程控制
一旦数据被确定,机器必须被告知如何对这些数据进行处理。较简单的指令可以使用关键字或定义好的语法结构来完成。不同的语言利用序列系统来取得或组合这些语句。除此之外,一个语言中的其他指令也可以用来控制处理的过程(例如分支、循环等)。
引用机制和重用
引用的中心思想是必须有一种间接设计储存空间的方法。最常见的方法是通过命名变量。根据不同的语言,进一步的引用可以包括指向其他储存空间的指针。还有一种类似的方法就是命名一组指令。大多数程序设计语言使用宏调用、过程调用或函数调用。使用这些代替的名字能让程序更灵活,并更具重用性。
程序设计语言的历史
二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(Konrad Zuse)。
几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。也就是说,开发时间已经远比运行时间来得宝贵。
于是,新的集成、可视的开发环境越来越流行。它们减少了所付出的时间、金钱(以及脑细胞)。只要轻敲几个键,一整段代码就可以使用了。这也得益于可以重用的程序代码库。
常见的程序设计语言
ActionScript
APL、A+和J
Ada
汇编语言
AWK
Basic、Fortran
VBScript
Brainfuck
C、C++
C#
Clipper
COBOL
dBase
PASCAL、Delphi
Forth
FoxPro
F#
Fava
IDL
Java
JavaScript
J#
LISP
Lua
LOGO
Modula
Nuva
Perl
PHP
PL/I
Prolog
Python
R
Ruby
Scheme
Smalltalk
SQL
Tcl/Tk
Visual Basic
Visual FoxPro
XML
[编辑] 参见
计算机科学课程列表
程序设计语言列表
编译器
Hello World程序
脚本语言
维基程序员
程序设计语言编辑
工业编程语言: A+ | Ada | 汇编语言 | Basic | Brainfuck | C语言 | C++ | C++/CLI | Cg | COBOL | Eiffel | Erlang | FORTRAN |Fuxi| IronPython | Java | JRuby | Jython | LISP | Lua | Nuva | Oberon | Objective-C | Ocaml | Pascal | Perl | Powerbuilder | Python | QBASIC | R语言 | REXX | Ruby | Self | Smalltalk | SQL | Tcl语言 | Visual Basic | PHP | Lua | C# | F# | J# | Visual Basic NET| 机器语言
脚本编程语言: ActionScript | JavaScript | JScript | Nuva | PostScript | VBScript
学术编程语言: APL/J | Haskell | Logo | ML | Prolog | Scheme | SAC
其他编程语言: ALGOL | BASIC | Clipper | Forth | Fuxi|Modula-2/Modula-3 | MUMPS | PL/I | Simula
取自https://securewikimediaorg/wikipedia/zh/w/indexphptitle=%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80&variant=zh-cn [经过修改
页面分类: 程序设计语言 | 人工语言
程序设计语言
programming language
用于书写计算机程序的语言。语言的基础是一组记号和一组规则。根据规则由记号构成的记号串的总体就是语言。在程序设计语言中,这些记号串就是程序。程序设计语言有3个方面的因素,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义,也不涉及使用者。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。语用表示程序与使用者的关系。
基本成分 语言的种类千差万别。但是,一般说来,基本成分不外4种。①数据成分。用以描述程序中所涉及的数据。②运算成分。用以描述程序中所包含的运算。③控制成分。用以表达程序中的控制构造。④传输成分。用以表达程序中数据的传输。
分类 按语言级别,有低级语言和高级语言之分。低级语言包括字位码、机器语言和汇编语言。它的特点是与特定的机器有关,功效高,但使用复杂、繁琐、费时、易出差错。其中,字位码是计算机唯一可直接理解的语言,但由于它是一连串的字位,复杂、繁琐、冗长,几乎无人直接使用。机器语言是表示成数码形式的机器基本指令集,或者是 *** 作码经过符号化的基本指令集。汇编语言是机器语言中地址部分符号化的结果,或进一步包括宏构造。
高级语言的表示方法要比低级语言更接近于待解问题的表示方法,其特点是在一定程度上与具体机器无关,易学、易用、易维护。当高级语言程序翻译成相应的低级语言程序时,一般说来,一个高级语言程序单位要对应多条机器指令,相应的编译程序所产生的目标程序往往功效较低。
按照用户要求,有过程式语言和非过程式语言之分。过程式语言的主要特征是,用户可以指明一列可顺序执行的运算,以表示相应的计算过程。例如,FORTRAN,COBOL,ALGOL60等都是过程式语言。非过程式语言的含义是相对的,凡是用户无法指明表示计算过程的一列可顺序执行的运算的语言,都是非过程式语言。著名的例子是表格的生成程序(RPG)。它实质上不是语言,使用者只须指明输入和预期的输出,无须指明为了得到输出所需的过程。
按照应用范围,有通用语言和专用语言之分。目标非单一的语言称为通用语言,例如FORTRAN、COBOL、ALGOL60等都是通用语言。目标单一的语言称为专用语言,如APT等。
按照使用方式,有交互式语言和非交互式语言之分。具有反映人�机交互作用的语言成分的称为交互式语言,如BASIC语言就是交互式语言。语言成分不反映人-机交互作用的称非交互式语言,如FORTRAN、COBOL、ALGOL60、PASCAL等都是非交互式语言。
按照成分性质,有顺序语言、并发语言和分布语言之分。只含顺序成分的语言称为顺序语言,如FORTRAN、COBOL等都属顺序语言。含有并发成分的语言称为并发语言,如并发PASCAL、MODULA和ADA等都属并发语言。考虑到分布计算要求的语言称为分布语言,如MODULA便属分布语言。
传统的程序设计语言大都以诺伊曼式的计算机为设计背景,因而又称为诺伊曼式语言。J巴克斯于1977年提出的函数式语言,则以非诺伊曼式的计算机为设计背景,因而又称为非诺伊曼式语言。
主要语言 ① APT( Automatically Pro-grammed Tools)——自动数控程序。第一个专用语言,用于数控机床加工,1956。
②FORTRAN(FORmula TRANslation)——公式翻译程序设计语言。第一个广泛使用的高级语言,为广大科学和工程技术人员使用计算机创造了条件,1956。
③ FLOW-MATIC 。第一个适用于商用数据处理的语言,其语法与英语语法类似,1956。
④IPL-V(Information Processing Language V)——信息处理语言。第一个表处理语言,可看成是一种适用于表处理的假想计算机上的汇编语言,1958。
⑤ COMIT(COmpiler Massachusetts Institute foTechnology) —— 马萨诸塞州理工学院编译程序。第一个现实的串处理和模式匹配语言,1957。
⑥COBOL(COmmon Business Oriented Language)——面向商业的通用语言。使用最广泛的商用语言,它是适用于数据处理的高级程序设计语言,1960。
⑦ALGOL60(ALGOrithmic language60) ——算法语言60。程序设计语言由技艺转向科学的重要标志,其特点是局部性、动态性、递归性和严谨性,1960。
⑧LISP(LISt Proceessing——表处理语言。引进函数式程序设计概念和表处理设施,在人工智能的领域内广泛使用,1960。
⑨JOVIAL(Jules Own Version of IAL)——国际算法语言的朱尔斯文本。第一个具有处理科学计算、输入-输出逻辑信息、数据存储和处理等综合功能的语言。多数JOVIAL编译程序都是用JOVIAL书写的,1960。
⑩GPSS(General-purpose Systems Simulator)——通用系统模拟语言 。第一个使模拟成为实用工具的语言 ,1961。
�JOSS(Johnniac Open-Shop System ——。第一个交互式语言,它有很多方言,曾使分时成为实用,1964。
�FORMAC(FORmula MAnipulation Compiler)——公式翻译程序设计语言公式处理编译程序。第一个广泛用于需要形式代数处理的数学问题领域内的语言,1964。
�SIMULA (SIMUlation LAnguage)—— 模拟语言 。主要用于模拟的语言,是ALGOL60的扩充,1966。SIMULA67是1967年SIMULA的改进。其中引进的“类”概念,是现代程序设计语言中“模块”概念的先声。
�APL/360 (A Programming Language)——程序设计语言360。一种提供很多高级运算符的语言,可使程序人员写出甚为紧凑的程序 ,特别是涉及到矩阵计算的程序 ,1967。
� PASCAL ( Philips Automatic Sequence CALcul-ator)——菲利浦自动顺序计算机语言。在ALGOL60的基础上发展起来的重要语言 ,其最大特点是简明性与结构化,1971。
�PROLOG(PROgrammingin LOGic)。 一种处理逻辑问题的语言。它已经广泛应用于关系数据库、数理逻辑、抽象问题求解、自然语言理解等多种领域中,1973。
�ADA。一种现代模块化语言。属于ALGOLPASCAL语言族,但有较大变动。其主要特征是强类型化和模块化,便于实现个别编译,提供类属设施,提供异常处理,适于嵌入式应用,1979。
除了上面列举的语言外,还有一些较为通用的语言,特别是BASIC、PL/1、SNOBOL、ALGOL68等。BASIC虽然简单易学,使用广泛,但其中没有什么新概念,而且并不是第一个交互式语言。PL/1的设计 思想来源于JOVIAL,其功能来源于FORTRAN、COBOL、ALGOL60,具有中断表处理等设施。SNOBOL是一种好 的语言,对COMIT中若干概念做了明显的改进。ALGOL68在语言成分和 描述方法方面虽有所创新,但应用尚不广泛。
发展趋势 程序设计语言是软件的重要方面。它的发展趋势是模块化、简明性和形式化。①模块化。不仅语言具有模块成分,程序由模块组成,而且语言本身的结构也是模块化的。②简明性。涉及的基本概念不多,成分简单,结构清晰,易学易用。③形式化。发展合适的形式体系,以描述语言的语法、语义、语用。
可以在后台对栏目进行排序栏目管理那里。
使用函数颠倒数组,$arrchildid实际上是个数组。
loop就是php里的foreach。
PHP,是英文超文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛地运用。
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多
PHP安装PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"的缩写。这种将名称放到定义中的写法被称作递归缩写。
PHP于19 ISAPI筛选器94年由Rasmus Lerdorf创建,刚刚开始是Rasmus Lerdorf 为了要维护个人网页而制作的一个简单的用Perl语言编写的程序。
这些工具程序用来显示 Rasmus Lerdorf 的个人履历,以及统计网页流量。后来又用C语言重新编写,包括可以访问数据库。他将这些程序和一些表单直译器整合起来,称为 PHP/FI。PHP/FI 可以和数据库连接,产生简单的动态网页程序。
$j=1;
$x=2;
while($j)
{
$x=$x2;
$j++;
if($x==4096){
echo $j;
break;
}
}
扩展资料:
PHP优点:
流行,容易上手
PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过817%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。
开发职位很多
在服务器端的网站编程中PHP会更容易帮助你找到工作。很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。
仍然在不断发展
PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。
可植入性强
PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。
拓展性强
PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。
缺点
PHP的解释运行机制
在 PHP 中,所有的变量都是页面级的,无论是全局变量, 还是类的静态成员,都会在页面执行完毕后被清空。
设计缺陷,缺少关注PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。早期的PHP受到Perl的影响,带有out参数的标准库又是有C语言引入,面向对象的部分又是从 C++和Java学来的。
对递归的不良支持
PHP并不擅长递归。它能容忍的递归函数的数量限制和其他语言比起来明显少。
PHP主要特点:开源性和免费性、快捷性、数据库连接的广泛性、面向过程和面向对象并用。
-PHP
题主是否想询问“perlodbc分段错误原因”。原因如下:
1、访问了未分配的内存或已释放的内存。
2、内存越界,例如访问了数组越界的元素。
3、栈溢出,例如递归调用过多导致栈空间不足。
4、多线程同步问题,例如多个线程同时访问同一块内存区域。
5、检查代码中的内存访问,确保没有访问无效的内存地址或已释放的内存。
6、检查数组访问是否越界,确保访问合法的元素。
7、减少递归调用深度,避免栈溢出。
8、在多线程环境中使用同步机制,避免多个线程同时访问同一块内存区域。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)