简洁脚本语言
㈠ php是什么意思
php通常指超文本预处理器,用于面向对象、命令式编程,是一种通用开源脚本语言。
主要特点:
为开源性和免费性、快捷性、数据库连接的广泛性、面向过程和面向对象并用。优点是利于学习,使用广泛。此外,php还可以指菲律宾比索的标准货币代码符号,MPLS网络中的倒数第二跳弹出功能。是英文超级文本预处理语言Hypertext Preprocessor的缩写。PHP 是一种HTML 内嵌式的语言,是一种在服务器端执行嵌入HTML文档的脚本语言,语言风格有些类似于c语言,被广泛的运用。
简介:
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;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是一个受众大并且拥有众多开发者的开源软件项目,linux + Nginx + Mysql + PHP是它的经典安装部署方式,相关的软件全部都是开源免费的,所以使用PHP可以节约大量的正版授权费用。不过PHP作为一个开源软件,它缺乏大型科技公司的支持背景,网络上对它的唱衰也是经久不衰,不过它的持续迭代和性能持续增强的现实却是鼓舞人心的,PHP社区用实际行动给予各种质疑强有力的回击。
快捷高效
PHP的内核是C语言编写的基础好效率高,可以用C语言开发高性能的扩展组件;PHP的核心包含了数量超过1000的内置函数,功能应有尽有很全面,开箱即用程序代码简洁; PHP数组支持动态扩容,支持以数字、字符串或者混合键名的关联数组,能大幅提高开发效率; PHP是一门弱类型语言,程序编译通过率高,相对其他强类型语言开发效率快;PHP天然热部署,在php-fpm运行模式下代码文件覆盖即完成热部署;PHP经过20多年的发展,在互联网上可以搜到海量的参考资料供参考学习。
性能提升
PHP版本越高它的整体性能越高,根据官方介绍,PHP7.0.0 对比PHP5.6性能就提升了2倍,PHP7.4已经比PHP7.0快了约30%,PHP8.0在性能上又相对PHP7.4大约改进了10%。PHP 8.0 引入了 JIT编译器特性,同时加入多种新的语言功能,例如命名参数、联合类型、注解、Constructor Property Promotion、match 表达式、nullsafe 运算符以及对类型系统、错误处理和一致性的改进。PHP拥有自己的核心开发团队,保持5年发布一个大版本、1个月发布2个小版本的频率,最新的版本是PHP8.08 。
跨平台
每个平台都有对应的php解释器版本,指针对不同平台均编译出目标平台的二进制码(PHP解释器),php开发的程序可以不经修改运行在windows、linux、unix等多个操作系统上。
常驻内存
php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存实现资源复用,比较常用的做法是结合swoole 组件编写cli框架。
页面生命周期
在php-fpm模式下,所有的变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空,对程序员水平要求低,占用内存非常少,特别适合中小型系统的开发。
运行机制:
PHP常见的运行模式有2种,分别是php-fpm 和php-cli 。当PHP 选择运行在php-fpm模式下,所有的变量都是页面级的,无论是全局变量还是类的静态成员,都会在页面执行完毕后被清空。运行在php-cli模式下可以实现程序常驻内存,各种变量和数据库连接都能长久保存在内存 实现资源复用,性能可以得到很大的提升,php-cli开发比较复杂能但是能够获取更高的性能,对开发者的要求比较高需要比较高的开发水平,比较常用的模式是结合swoole 组件编写cli框架,各种变量能保存在跨进程的高性能共享内存 Table ,可以开发出支持热启动的php-cli可靠各类应用系统。
php-fpm在PHP 5.3.3 版本成为了官方正式组件(2010-07-22),它提供了稳定可靠的进程管理服务,进程不足时候可以智能扩充数量,闲置时候可以自动回收销毁多余的进程,同时它对程序的容错能力很强大运行非常稳定,可以应付企业级的开发需求。php-fpm友好的完成了使用HTTP/HTTPS等TCP/IP互联网协议下进行的用户的输入输出,页面级生命周期各种资源用完即释放,不存在内存泄漏的问题。php-fpm也提供有一些常驻内存的技术支持,例如PHP 7.4引入的opcache.preload也能实现局部的PHP类和函数的常驻内存,不过这个方法不够灵活,和服务器配置捆绑的太死了。
php-cli因为能实现各类资源的常驻内存,所以可以资源复用,更高效完成多进程编程和异步编程,可以开发出负载能力更高的应用系统。但是相对php-fpm的简单编程开发,开发者要注意很多的事项和需要做很多附加的控制器开发,否则就无法实现期待中的高性能。
首先开发者需要去实现可靠的进程管理服务,保证系统进程遇到各类错误退出运行后能够自动创建新的进程,只有这样才能保证后续的服务请求有足够空闲进程可分配。每个业务代码段都要做异常处理,让进程遇到非致命错误时候不会退出,因为进程重启意味程序和各类资源需要再次加载,这个过程性能消耗不小,所以只有进程稳定运行了常驻内存才有意义。
其次因为常驻内存,编写的新的程序必须重启服务才能生效,这一点习惯了fpm模式的开发者会感到比较陌生。另外开发者需要手工释放内存,否则系统长时间运行后会出现内存泄露。同时在cli模式下,我们不能像fpm里直接用 $_SERVER、$_POST、$_GET、$_COOKI和$_FILES 进行编程工作,需要自己去解析各种互联网通讯协议完成用户的输入输出。要实现多进程编程利用多核CPU计算,还有学习使用pcntl和posix编程,这里涉及到了异步编程逻辑,这块难度还是比较大的。比较常用的模式是结合swoole 组件编写cli框架。
PHP是一个活跃的社区开发语言,有专业的核心开发团队在持续不断的迭代,最近一个版本就是PHP 8.0.8 引入了很多的新特性。
语言参考:
内置函数
PHP 有很多标准的函数和结构。还有一些函数需要和特定的扩展模块一起编译,否则在使用它们的时候就会得到一个致命的“未定义函数”错误。例如,要使用 image 函数中的 imagecreatetrue,需要在编译 PHP 的时候加上 GD 的支持。或者要使用 mysqli_connect函数,就需要在编译 PHP 的时候加上 MySQLi 支持。有很多核心函数已包含在每个版本的 PHP 中如字符串和变量函数。调用 phpinfo或者 get_loaded_extensions可以得知 PHP 加载了那些扩展库。同时还应该注意,很多扩展库默认就是有效的。
静态网站与动态网站的区别
静态网站:web1.0 时代
动态网站:web2.0 时代
静态网站特点:
1、网页内容一经发布到网站服务器,无论是否有用户访问,每个静态页面的内容都是保存在网站服务器上的。也就是说,静态网页是实实在在保存在服务器上的文件,每个网页都是一个独立的文件。
2、静态网页的内容相对稳定,因此容易被搜索引擎检索。
3、 静态网页没有数据库的支持,在网站制作和维护方面工作量较大,因此当网站信息量很大时完全依靠静态网页制作方式比较困难。
4、静态网页的交互性较差,在功能方面有较大的限制。
㈡ 游戏开发中常用哪种脚本语言
随着《魔兽世界》(以下简称wow)在世界范围内流行,脚本渐渐被人们所熟知。由于wow强大的自定义界面系统,Lua这一脚本语言一举成名。
其实早在Lua脚本语言被大众所熟知以前,游戏业内人士就已经开始使用脚本来开发游戏了。我们熟悉的很多国内的网络游戏大都运用了脚本开发,比如网游的长青树“梦幻西游和《大话西游2就大量应用了脚本技术。特别是《大话西游2》,其实现基于Lua脚本游戏开发的时间要远早于《魔兽世界》。在脚本技术上,国内与国外其实是站在同一起跑线上的,并不存在什么差距,这也为国内游戏产业赶超国外游戏产业提供了强有力的技术保证。
在单机游戏时代,脚本这个词几乎很少出现,那么,为什么在网络游戏时代它却成了业界的宠儿呢?原因是多方面的。
单机游戏时代,无论游戏主机还是PC机,它们的性能都非常低下,从而需要具有较高执行效率的编译型语言对机器的性能进行“压榨”。随着科技发展和硬件性能的不断提升,脚本逐渐被开发者所接受并利用,但这并不是脚本流行起来的决定性因素,真正的原因还在于游戏市场有这方面的需求。
网络游戏时代的市场竞争激烈、变化莫测,如果延用单机时代一年半载才出一个新版本的开发方式,必然会被游戏行业激烈的市场竞争所淘汰。正是这种游戏市场需求旺盛和开发工具效率底下之间的矛盾,促使脚本语言迅速地发展起来。脚本的兴起使得传统编译型语言(asngC/C )的性能优势在硬件功效大幅攀升的今天已经不复存在。
除了市场和硬件这两个因素之外,还有一点我们不能忽略。那就是用C/C 进行游戏开发的高成本和高项目风险。随着java/.net逐渐流行,学习C/C 编程语言的人越来越少,而网络游戏市场的需求却越来越庞大,在程序人才大量匮乏的情况下,造成了c,C 人才的高成本。即便是有能力雇佣大量C/C 程序员的公司,在开发游戏的过程中,也不能无视C/C 的高级特性和高度灵活性带来的高项目风险。C/C 是易学难精的编程语言,在开发大型项目的时候由于程序员的水平参差不齐,所以极易造成沟通不畅。不仅如此,c,C 滥用的高级特性也容易引入大量bug。正是由于这些原因,游戏公司开始在游戏中使用脚本,希望通过脚本来解决这些高成本、高风险的问题。
二.脚本的现状
脚本不仅解决了c/C 无法解决的开发效率难题,还降低了开发的成本和风险。因此脚本技术在游戏业内蓬勃发展起来,并且已经成为游戏业中不可或缺的一环。纵观当前脚本技术现状,形势一片大好,不仅语言百家争鸣,而且书籍种类也越来越多;不仅在游戏业界开花结果,在web等其它应用领域也大放异彩。
首先,我们来看看目前比较流行的脚本:python、Lua、ruby和Erlang。Python和Lua是网络游戏开发的中坚力量;ruby凭借 rubyonrails的web开发框架的强劲力量,其在游戏业的发展前途亦不可小视;Erlang在高并发性上的原生优势吸引了无数追求高性能网游服务器的开发人员的目光。
其次,我们来看看书籍方面。大家都知道,文字对语言的普及起到了催化剂的作用,甚至可以看作是语言的有机组成部分。Python经过基金会的多年经营而得到NASA、Google重用的原因,就是由于其相关书籍种类比较丰富;Ruby随着RoR的流行,这两年行情看好,书籍也出版得越来越多了;Erlang是典型的少众语言,但随着多核时代的来临和高并发网络应用的需求,Erlang有着光明的发展前景,现在<<ProgrammingErlang>>等书也已经在策划出版了;反观Lua,虽然目前越来越流行,但由于它晦涩的接口设计和缺乏大型应用的支持,使得相关书籍寥寥无几。
最后,我们把焦点重新聚集到游戏开发行业中,其实不难发现,除了前文提到的《魔兽世界》和网易经典“西游系列”使用了脚本外,现在大多数比较流行的程序也都使用了脚本,如腾讯的QQgame))和搜狐的《天龙八部》等。不仅如此,现今的游戏引擎也都提供了脚本接口,无论是商业的unreal引擎还是开源的 OGRE,无一例外。
三.脚本的优势
脚本之所以能够在游戏业中找到自己的一席之地,是因为网络游戏市场需要一个快速开发方案来避免C/C 开发带来的项目高成本和高风险。那么,脚本相对于C/C 这类编译型语言到底有什么优势呢?
I易于学习,代码可维护性强
脚本的语法通常都非常简单,也没有太多高阶的特性,学习的门槛较C/C 低得多,比如Python可能只需要花一个下午即可学会。这使得游戏开发公司可以招聘完全没有脚本、编程经验的新手,通过低成本的培训,他们便能迅速地走上工作岗位。除易于学习外,脚本代码也有较强的可维护陛(尽管写出没有人看得懂的Lua代码也非难事)。因为脚本没有很多高阶特性(如c 里的模板元编程就是高阶特性),所以脚本程序员就有更多的精力去架构、模式、重用和测试等工作,从而提高了代码的可维护性。相应地,正因为没有那么多让人困惑的高阶特性,也使得脚本代码“简洁”不少。
2.降低开发成本
如上所言,由于脚本易于学习,游戏开发公司可以大量起用新手,这正是降低成本的有效手段。那么如何来确保新手所写代码的质量呢?众所周知,新手无论用什么语言写程序肯定会出现bug,但用C/C 和Python做比较,可以看出,一个新手用C/c 编写出的程序所出现的bug肯定会比用Python编写出现的bug要多。由于c程序需要编译,而脚本程序(大部分)都可以直接解释执行,所以在排除 bug方面脚本也占有一定的优势,这也使脚本在降低成本的同时能够更好地保证代码质量。
3.形成人才壁垒
软件开发行业是一个颇为动荡的行业,无数的程序员都在跳槽和谋划跳槽的状态中生活,使用脚本开发形成人才壁垒是游戏业减少人才流动的有效手段。因为现在脚本除了在游戏业中非常流行外,并没有在其它行业形成广泛应用(虽然在web开发方面也有燎原之势,但终究不如在游戏业中的地位高)。这就使得游戏程序员很少会考虑非游戏行业的职位,但其它行业的程序员却可能会因为脚本的易学习性而转投游戏业。脚本除了能有效形成行业间的人才壁垒外,也能有效地形成企业间的人才壁垒。由于现有的脚本种类繁多,不同公司往往有不同的选择,甚至有些公司使用自己开发的脚本语言,所以程序员从公司A跳槽到公司B可能要学习使用另一种脚本,这就提高了跳槽的成本,从而减少了人才的流动。
四.脚本的发展趋势
依照目前趋势来看,脚本语言一定会更加的普及,而且会逐渐渗透到其它行业中。随着网络游戏从业人员数量的增长,脚本程序员也一直增加,而且Web2、0热潮引起的网络需求,也促成了一批批新脚本程序员的诞生。网络游戏市场就像一个正在滚动的雪球,推动着脚本的普及。
随着脚本在游戏业中越来越流行,市场对生产效率的需要也会相应提高。脚本虽然在一定程度上缓解了生产效率与生产工具之间的矛盾,但仍然不够完善。由于市场竞争日趋激烈,而网络游戏在很多功能上的实现又都相差无几,如网络、数据库、图形甚至部分逻辑,这必然会引起网络游戏生产的组装化一一大量中间件相互组合形成新的网络游戏。从目前来看,Bigwofld、PhysX和Unreal等都是比较流行的网络游戏中间件。脚本语言则是粘合各个中间件的良好胶水语言,所以随着网络游戏的生产组装化,脚本将有更大的发展空间。
那么,当脚本发展到如日中天的时候,可能取代C/C 这些编译型语言吗?笔者认为不会。脚本语言和编译型语言在生产效率和执行效率上各擅胜场,网络游戏既需要能快速应变的脚本,也需要能快速执行以提供更绚丽游戏效果的编译型语言。未来,它们之间一定会保持长久的和谐互补关系,相辅相成。
五.结语
综上所述,网络游戏时代是上帝赐予脚本语言发展的绝好时机,脚本语言很快将迎来光芒四射的时代。脚本语言拥有编译型语言无可比拟的生产效率优势,所以它们将互补互助并肩奋战在游戏的最前线。
㈢ 如何用python脚本语言写带窗口程序
当你想学习一门新的语言时,特别是像Python这样的脚本语言,在你准备充分开始写应用程序的图形化界面之前,有时候你可能被迫使用应用程序的控制台。从第一版商业图形界面发行以来(感兴趣的话,可以查看Xerox之星),至今经过了25年的时间,在应用程序上继续使用控制台看上去似乎有点古老。非常感谢Python脚本语言强调简洁的语法,这意味着你不需要成为Python编程高手就能在程序中使用图形用户界面。为了证明这个说法,我将使用Python标准的GUI(图形用户界面)工具:Tk来建立一个简单的记录会话程序。我不会详细介绍Python的简单语法,如果你有不明白的地方,请你阅读我先前关于这个主题的文章(点击这里和这里就可以查看);让我们从基本的开始讲起,首先你需要输入Tk界面到你的程序命名空间中。因为我们将会不断地引用到Tk窗口小部件,我们不希望一直用一个包来限定它们,所以最好的方法就是这样做:from Tkinter import *这个导入语句与传统的导入语句的区别在于,它在模块中将所有的东西导入程序默认的命名空间,而不是在你需要引用一个像Tkinter.Textbox文本框的时候,你就只能写文本框。现在我们来建立根窗口并设置它的标题来解释一些东西:root = Tk()root.title("Note Taker")创建根窗口就像创建一个Tk类的实例一样简单,它会装载图形工具包并提供给我们一个可以装载窗口小部件的空白窗口。这是启动一个Tk程序基本过程的第一部分。root.mainloop()第二部分(上面所显示的)是调用Tk主循环(mainloop),这个主循环是用来处理事件的,比如键盘事件或者鼠标输入,允许用户与对话框交换信息。事实上,这时候你才真正地用到了GUI程序。用那四种方式运行一个python脚本,将弹出一个窗口,但是这个窗口仅仅是放置在那里,它不会做任何操作。
㈣ Python会取代PHP吗 都是脚本语言,但是Python更简洁。
PHP不会被python取代。
都是脚本语言没错,但是:
首先,语法逻辑不一样,语法逻辑会使得一个语言的风格和走向不一样。PHP比较简单,可以嵌入html,等等这些东西都决定了PHP是简单路线。python语法格式比较严格,连标点符号和空格都严格要求,这导致了python用来做深入和复杂的东西。
其次,两者的定位也不一样。现在被使用的地方,PHP主要被用来做网站;python主要做爬虫和深度学习算法等。虽然两者的用处可以互换,可是一般来说,擅长的东西不做而去做不擅长的东西这是性能方面和扩展都不能得到充足的发展。
另外,两者的版本兼容问题,PHP是基本继承和沿袭版本,对旧版本和新版本兼容比较融洽,不会有5版本是7版本这样一个版本级别差别不兼容的问题,向下兼容好。而python2和python3就有很大区别,3不能向下兼容2,这是因为改了引擎的问题,这也是一个致命的问题。
最后,现在也有PHP深度学习的框架、爬虫等的出现;python现在也有做网站的。虽然是这样,但是PHP累积的网站系统和框架不可能抛弃不用而去使用python开发;python累积的各种复杂操作的框架不可能抛弃不用而去使用PHP新出的框架。他们恰巧不是为了打压对方,而是让使用自己语言的开发人员,希望走该方向的能够有个更容易上手的一个选择。
在后面很长的时间内,PHP和python都不会被互相取代。
㈤ shell语言是什么啊
SHELL语言是指UNIX操作系统的命令语言,同时又是该命令语言的解释程序的简称。
Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。
(5)简洁脚本语言扩展阅读:
shell的语言的运行场景:
Shell是各个UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。同时,它运行于高于系统内核的环境,能够简单地执行一些文件系统级的高级操作。因此,之所以要使用Shell脚本是基于:
1、简单性:Shell是一个高级语言,处于内核外层环境;通过它,你可以简洁地表达复杂的操作。
2、可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
3、开发容易:可以在短时间内完成一个功能强大又适用的脚本。
㈥ 最简单的计算机语言有哪些
网页上的html是最简单的语言,但是功能实在少得可怜,除了描述网页就没有别的用途了(不过话说回来,直接描述网页也只有它才能做到,其他语言做不到)
Script(脚本)系列 也很简单
这里有很多种,常见的有Javascript(引进了Java的一些思想,不过实际内容简单得多了),VBScript (Visual Basic的一部分), C#Script(C#的一部分), 这三种主要用于网页网站设计,辅助html间接描述网页,让网页变得丰富多彩绚丽,而单机上也可以运行以执行一些可自动化的操作,实现一些简单的小程序和一些手动操作非常麻烦甚至是不可能的操作,但还是难以编完整的独立的程序,还有批处理bat,这也是一种脚本,也很简单,专门单机使用,擅长代替大量的手工操作和系统维护,但要做出我们常用的这种漂亮的程序,是不可能的。
想要做我们常用的程序要用以下几种语言,不过相比之上面的语言都复杂许多:
Basic系列是最简单的,不过因为版本多样不统一还有一些效率的问题,所以用的人不是非常多
不过其中有一个例外:Visual Basic 有微软的支持,可视化的,可以很快有成就感编出像样的程序,而且很多文档中的宏 VBA(Visual Basic for Application)还有以上说的VBScript都是它的一部分,所以还是很受欢迎的。
C语言,入门还比较简单,但挺枯燥,初学没什么成就感,要想编大程序要学得挺深,有点难,编出来的程序在高级语言中效率最高,所以是第二广泛使用的语言仅次于Java。
C++,C#,会更难一点,但是程序要编大的会相比之下简单点,这些都是C语言的扩展,其中C++擅长本机大程序,C#适合网络编程(刚才说的C#Script是它的一部分)
Java,语法上类似C++,在跨平台的时候会省你很多麻烦,所以由于手机的普及近一两年它才超过C/C++成了应用最广泛的语言。不过开发出来的程序效率比较不怎么样,但有些人挺喜欢它的思想,所以不跨平台的话,见仁见智
其余的还有Delphi,Pascal,等等不过那些都不怎么常用而且比较复杂,要图简单,强烈推荐Visual Basic,要深究程序内部的东西那还是从C开始比较好
㈦ 你平时会用脚本语言完成哪些常用的工作或生活问题
在现在社会发的比较快,脚本语言是一种比较方便的程序,因为我之前是做it的,他能够让我的工作效率更高,在生活中我喜欢打游戏,能够让我的游戏玩的更好。
总而言之,脚本语言已经是我的生活中不可缺失的一部分,不管是工作还是生活,都能够给我带来更大的乐趣,提高工作效率,但是我们应该把脚本用在对的地方,不要偷奸耍滑,做一些违反法律的事情。
㈧ 关于mel脚本语言的编写与使用
ge(Maya内置语言)的缩写,是一种强大的命令和脚本语言,让你直接控制Maya的特征、进程和工作流程。mel能做什么,不能做什么?能做的mel有一个很重要的功能是编写界面,Maya的整个界面是用mel编写的,Maya中的所有界面元素都可以编写到你自己的mel程序界面中,你可以用mel跟据自己的习惯定制自己的操作界面。Maya中的所有的按钮命令都是通过mel来调用的,你可以记录并把其中一些命令组合起来,通过一键或按钮来自动执行这一组命令,就像PhotoShop里的Actions一样。Maya中的每一步操作都是在执行mel,因此Maya的任何一个功能,能做的任何一项操作,都可以加到你自己的mel程序中。mel有着和c语言类似的语法,有强大的字符串处理功能,还包含一些较为低层的命令(比如说获取选择物体的名称和获取点在空间中的坐标值等命令),可以编写一些Maya中没有的,较为复杂的功能。不能做的mel是一种脚本语言,受脚本解释器(Command Engine)和Maya内置命令的影响,还是有很多局限的。mel不能使用ActiveX插件。mel只能根据Maya中已有的命令(dll或mll中注册过的命令)进行扩展,无法直接调用dll模块中的函数。我们平常使用的dll或exe程序文件是经过编译器优化的二进制文件,命令的执行速度非常快。mel脚本语言是文本,有一个脚本解释器分析的过程,命令的执行速度较慢,大约要慢20倍。mel不支持指针,不能对内存进行直接操作。这就导致了很多方面的效率超级低下,对内存的间接操作可能会使运行速度降低100倍甚至1000倍以上。不过这样也有一个不容争辩的好处,就是不会产生内存泄漏,保障了Maya的稳定性。mel不能读写二进制文件。既然mel不支持指针,不支持数据结构,就算能够读写二进制文件意义也不大。mel不能编写程序渲染器、播放器;不能编写Maya中不存在的界面元素,如TreeView、RichEdit、透明窗口等;不能编写读取二进制文件的程序,如3dmax(*.max)、LightWave(*.lwo,*.lw)等。有人问过mel能不能编写病毒问题。答案是肯定的。编写mel病毒不需要什么高超的技能,只要通过mel调用dos命令或 JavaScript/VBScript命令就行了。编写病毒是一件损人不利己的事,mel病毒决对不能代表编写者的技术高深,只能说明他的素质低劣。 mel病毒极其罕见,只听说国内有人编过,并害了自己人。如果万一你被mel病毒格式了硬盘或删除了文件,可以用EasyRecover之类的程序来恢复,但有一点一定要记住,就是在恢复文件之前千万不要对受损的硬盘进行写操作!包括不能把恢复的数据存到受损的硬盘上!否则再厉害的高手也救不了你。学Maya一定要学mel吗?不一定非要学mel。但由于Maya与mel的关系太密切了,Maya的用户界面就是用mel编写的,你在Maya中的每一步操作都是在执行mel,你也经常会在表达式里用到mel,或使用别人编写的外部mel程序,这一切都要求你至少要对mel有一个初步的了解。可以先学mel再学Maya吗?不可以。只有先熟悉的Maya的操作后才可以学mel。一般至少学两个月以上的Maya,才可以学mel。学mel是否要有编程基础?是否应该先学C语言再学mel?有编程基础的确会对学mel有很大帮助,但这并不是说学mel一定要有编程基础。C语言和Java语言虽然在语法上与mel很相似,但在编程的思路方面有很大差距,mel更注重代码的简洁而非代码运行的高效率。由于mel是不需要编译的脚本语言,对一些编程的规范要求不是很严格,学习起来会比C或Java更简单一些。学mel是否要学好数学?是否要学好图形学?如果你是学理科的,而且以后打算在3D图形编程这方面发展,那么学好数学和图形学是必须的。如果你是搞艺术的,学mel只是为了辅助Maya作图,那么你就少在数学和图形学上浪费时间。mel是比较高层的脚本语言,一般都是直接调用Maya中已经编好的算法,你只要熟练掌握Maya的操作就行了。如果你有比较好的图形学基础,可能反而会不喜欢使用mel,因为很多优秀的算法无法用mel实现 - mel的速度太慢了。如何编写mel?mel是脚本语言,这就意味着你可以用任何文本编辑器来编写,比如写字板、记事本等。Maya自带的编辑器不好用,所以我们一般使用外部编辑器来编写mel。比较专业的编辑器有:TextPad、 UltraEditor、EditPlus等,有了这些编辑器后还要在网上(比如Highend3d)下载一个mel语法加亮文件,配置好后,才好用。如何使用mel?mel编辑器单行的mel命令,可以直接在命令行(Command Line)执行,也可以在Window > General Editors > Command Shell执行。多行的mel代码,可以在Script Editor中按Ctrl+Enter执行。shelf在Shelf中执行mel。把要执行的代码选中,用鼠标拖放到Shelf上,Shelf上多了一个mel图标,点这个图标,就可以执行你的mel代码了。使用textToShelf命令。比如:textToShelf "cube" "polyCube";可以在当前Shelf上建一个polyCube命令的图标。使用Shelf Editor,添加、编辑你的mel代码,或更改图标。mel文件mel文件的名字必须取与文件中的主函数相同的名字。要把mel文件复制到我的文档/Maya/5.0/scripts目录中,然后在命令行输入主函数名就可以执行这个函数命令。源化脚本(Source Script)Source Script可以使mel文件中的代码或命令立即生效。有几种方法可以Source Script,比如说可以在命令行执行source yourScript.mel,或用Script Editor的File > Source Script...,或直接把你的mel文件拖放到Maya的视窗中。启动文件userSetup.mel要想在Maya每次启动时都执行某一段代码,需要把这段代码加到Maya的启动文件userSetup.mel中。具体方法是在我的文档/Maya/5.0/scripts目录中新建一个文本文件并重命名为userSetup.mel,然后把你的代码加到这个文件中。如果scripts目录中已经存在了userSetup.mel,就把你的代码加到这个文件的结尾。其它也可以通过快捷键、菜单、Marking Menu、mll插件、外部程序文件、JavaScript等方法来调用mel。如何学习mel?学mel最好的参考手册就是Maya的帮助文档,遇到问题时,应首先从这些文档中找答案。我把文档中的Mel Command Reference部分做成了chm文件便于查询,可以点此处下载。要想提高自已的水平,需要多看别人编写的mel代码。<disk>:\\Alias\\Maya6.0\\scripts目录中存放着所有 Maya自带的mel,这些mel可以随意抄写,修改并发布,无版权限制,是我们学习的范本。另外在Maya官方网站和Highend3d也可以下载到大量有用的mel供我们学习。什么是表达式?mel与表达式有什么关系?mel与表达式的关系,Maya帮助文档中讲得很清楚:Expressions have a different purpose from MEL commands and MEL scripts. You enter a MEL command to do a single action, for example, to create a sphere.A MEL script is a list of commands you create to do a sequence of actions, for instance, create a wall-shaped object and apply a brick texture to it.Because you store a MEL script in a file on disk, you can run a script in different scenes and different work sessions, whether today or next year.An expression animates one or more attributes over time in a single scene. By default, an expression executes each frame as an animation plays. After you create an expression, it executes whenever you play the animation-including when you play the animation after saving, closing, and reopening the scene.A MEL command or script is not part of a scene after you execute it. You must execute it again to repeat the action.做几点补充说明:mel是用户与Maya内部机制交流的通道。mel不能直接编写节点和属性,因此往往要使用表达式才能对物体进行实时控制。表达式是与动画不可分割的,表达式与动画的时间(time或frame)有密切的关系,表达式对动画的每一帧都要进行计算。在表达式中可以使用mel,但很多mel用在表达式中是没有意义的,比如说一般不会把编写界面的mel用在表达式中。mel脚本可以用于任何场景。表达式只能用于一个场景,另一个场景即使用到相同的表达式,也要重新创建。表达式主要是对物体的属性进行控制,可以用等号对物体的属性直接取值或赋值,例如:cone.translateX = 3;而mel就必须用getAttr或setAttr来做同样的事情了,例如:setAttr cone.translateX 3;什么是MayaAPI?与mel有什么关系?API - Application Programmer Interface(应用程序界面)。也有人称作SDK,是一种专门给程序员使用的界面或接口。MayaAPI提供了Maya的5个dll文件。这些dll中包含控制Maya的大量类和函数,我们通过这些类和函数用vc++编写自己的dll(mll)文件,这些函数通过Maya的方式(比如用mel命令的形式)来调用。我们常用到的*.mll插件都是通过MayaAPI编写的。MayaAPI比mel更强大,更复杂,效率更高,能做到许多mel做不到的事情,运行速度在mel的十倍以上。MayaAPI的功能主要体现在以下几点:编写mel命令。 执行mel命令。 进行创建物体,选择、缩放、删除等基本操作。 编写manipulator。 编写contexts(tool)。 编写属性节点。 编写材质节点。 文件输入输出。 编写独立的exe控制台程序。MayaAPI程序因为使用vc++,可以使用MayaAPI,MFC,还有很多SDK,几乎是无所限制。不过不能改动Maya底层的东西,不能更改Maya的运作方式。使用MayaAPI,需要有vc++的编程经验,并具有图形学基础
㈨ 计算机语言的种类
机器语言(二进制代码)
汇编语言(面向机器的程序设计语言)
高级语言(按转换方式可分两类:
1、编译型语言; 2、解释型语言)
||按照客观系统的描述可分两类:
1、面向过程语言;
2、面向对象语言 ||
按照编程范型可分四类:
1、命令式语言;2、函数式语言;3、逻辑式语言;4、面向对象语言)
三种语言的优缺点
机器语言:可读性、可移植性差,编程繁杂。直接执行,速度快,资源占用少。汇编语言:不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性,难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试,使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源,目标代码简短,占用内存少,执行速度快。高级语言:运行速度基本上比直接用汇编写的慢,速度和程序大小与编译软件有关。高级语言接近算法语言,易学、易掌握,级语言为程序员提供了结构化程序设计的环境和工具,使得设计出来的程序可读性好,可维护性强,可靠性高;高级语言远离机器语言,与具体的计算机硬件关系不大,可移植性好,重用率高;由于把繁杂琐碎的事务交给了编译程序去做,所以自动化程度高,开发周期短,且程序员得到解脱,可以集中时间和精力去从事对于他们来说更为重要的创造性劳动,以提高程序的质量。
高级语言的分类
按转换方式可分为两类:1、编译型语言;2、解释型语言
编译型语言:编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。解释型语言:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。 现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。 关于脚本语言: 脚本语言是一种解释性的语言,脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言。脚本语言一般都 有相应的脚本引擎来解释执行。 他们一般需要解释器才能运行。一个脚本通常是解释运行而非编译。脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。而宏语言则可视为脚本语言的分支,两者也有实质上的相同之处。脚本语言一般都是以文本形式存在,类似于一种命令。
解释性语言:Java、Java、Perl、Python、Ruby、MATLAB 等。 编译性语言: C/C++、Pascal/Object Pascal(Delphi) 脚本语言:Python、Java,ASP,PHP,Perl等
解释性语言:Java、Java、Perl、Python、Ruby、MATLAB 等。 编译性语言: C/C++、Pascal/Object Pascal(Delphi) 脚本语言:Python、Java,ASP,PHP,Perl等
按照客观系统的描述可分为两类:1.面向过程语言; 2.面向对象语言
面向过程语言:面向过程语言是以过程或函数为基础的,这种语言对底层硬件,内存等操作比较方便,但是写代码和调试维护等会很麻烦。例如:c语言面向对象语言:面向对象语言(Object-Oriented Language)是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分。 面向对象语言的发展有两个方向:一种是纯面向对象语言,如Smalltalk、EIFFEL等;另一种是混合型面向对象语言,即在过程式语言及其它语言中加入类、继承等成分,如C++、Objective-C等
按照编程范型可分为:1.命令式语言; 2.函数式语言; 3.逻辑式语言; 4.面向对象语言
命令式语言: 命令式程序设计语言是基于动作的语言,以冯诺依曼计算机体系结构为背景。机器语言及汇编语言是最早的命令式语言。在这种语言中,计算机被看做是动作的序列,程序就是用语言提供的操作命令书写的一个操作序列。用命令式程序设计语言编写程序,就是描述解题过程中每一步的过程,程序的运行过程就是问题的求解过程,因此也称为过程式语言。Fortran、ALGOL、COBOL、C、Ada、Pascal等都是命令式程序设计语言。函数式语言: 函数式编程是种编程典范,它将电脑运算视为函数的计算。函数编程语言最重要的基础是 λ 演算(lambda calculus)。而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里,函数的计算可随时调用。这种语言的语义基础是基于数学函数概念的值映射的λ算子可计算模型。这种语言非常适合于进行人工智能等工作的计算。典型的函数式语言如 Lisp、Haskell、ML、Scheme 、F#等。逻辑式语言: 这种语言的语义基础是基于一组已知规则的形式逻辑系统。这种语言主要用在专家系统的实现中。最着名的逻辑式语言是 Prolog。面向对象语言: 现代语言中的大多数都提供面向对象的支持,但有些语言是直接建立在面向对象基本模型上的,语言的语法形式的语义就是基本对象操作。主要的纯面向对象语言是 Smalltalk。
㈩ python特点和优点
python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路,Python入门简单,相比于其他语言,初学者很容易入门。除此之外,Python还具有以下优点:
1. 简单:Python奉行简洁主义,易于读写,它使你能够专注于解决问题而不是去搞明白语言本身。
2. 免费:Python是开源软件。这意味着你不用花一分钱便能复制、阅读、改动它,这也是Python越来越优秀的原因——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
3. 兼容性:Python兼容众多平台,所以开发者不会遇到使用其他语言时常会遇到的困扰。
4. 面向对象:Python既支持面向过程,也支持面向对象编程。在面向过程编程中,程序员复用代码,在面向对象编程中,使用基于数据和函数的对象。
5. 丰富的库:Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。
6. 规范的代码:Python采用强制缩进的方式使得代码具有极佳的可读性。
7. 可扩展性和可嵌入性。如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。