lisp协议.docx

上传人:b****5 文档编号:3957336 上传时间:2022-11-26 格式:DOCX 页数:7 大小:24.03KB
下载 相关 举报
lisp协议.docx_第1页
第1页 / 共7页
lisp协议.docx_第2页
第2页 / 共7页
lisp协议.docx_第3页
第3页 / 共7页
lisp协议.docx_第4页
第4页 / 共7页
lisp协议.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

lisp协议.docx

《lisp协议.docx》由会员分享,可在线阅读,更多相关《lisp协议.docx(7页珍藏版)》请在冰豆网上搜索。

lisp协议.docx

lisp协议

竭诚为您提供优质文档/双击可除

lisp,协议

  篇一:

cad二次开发介绍

  auto-cad二次开发技术介绍

  摘要:

本文对cad技术中的二次开发所需的语言及工具介绍归纳,得出了一些有用的结论,对于了解cad二次开发技术的发展及其如何适应具有一定的意义

  关键词:

cad二次开发技术;autolisp

  1.前言autocad荣登全球绘图软件的龙头宝座,主要是因为它具有开放的体系结构。

它允许用户和开发者采用高级编程语言对其进行扩充和修改,即二次开发,能最大限度地满足用户的特殊要求。

autocad第一版于1982年11月由

  autodesk公司推出,目前被大家广泛使用的,最新版本是autocad20xx,其二次开发语言及工具也在不断地涌现

  由于大量的应用领域提供了特有的几何问题,对于这些问题必须建立有效的算法,画出更精确的图形,这就是孕育cad的二次开发,autocad的二次开发主要涉及以下内容:

(1)编写各种用户自定义函数并形成若干lisp、aRx、Vlx或ads文件,以及一些dcl文件。

(2)建立符合自己要求的菜单文件,一般可在autocad原菜单文件内添加自己的内容,对于autocad2000版本还可增加部分菜单文件,然后经交互方式加入到系统中去。

(3)在系统的acad.lsp或类似文件中加入某些内容以便进行各种初始化操作,如在启动时立即装入一些文件等。

(4)通过系统对话框设置某些路径。

这些操作在程序开发成功后向其它autocad系统上安装应用,特别是需要大批安装时,需要进行很多文件检索、内容增删、子目录创建、文件拷贝、系统设置等繁琐工作,如能令上述工作全部自动进行,使整个二次开发程序在无人干预的情况下嵌入系统,将大大提高工作效率。

  2.cad二次开发所涉及到的技术介绍

  2.1autocad二次开发的内容和工具

  autocad二次开发的主要目的是提高专业应用领域的工作效率,为专业绘图建立标准,并使常用的或重复的任务自动化等。

内容如下:

  开发具有专业特点的用户图形界面

  设计建立专业化的标准图形库

  设计和规划专业化的系统功能和命令集

  autocad二次开发的工具如下:

  autolisp语言和Visuallisp开发环境

  activex和Visualbasicforapplication(Vba)语言

  Visualc++语言和objectaRx开发环境

  objectaRx—autocadRuntimeextension编程环境,构造对象的c++库。

这些库用于开发autocad应用程序、扩展autocad类和协议,创建autocad内置命令相同的新命令。

  2.2cad二次开发所需语言及工具介绍

  1Vba即mcrosoftoffice中的Visualbasicforapplications,它被集成到autocad2000中。

Vba为开发者提供了一种新的选择,也为用户访问autocad2000中丰富的技术框架打开一条新的通道。

Vba和autocad2000中强大的activex自动化对象模型的结合,代表了一种新型的定制autocad的模式构架。

通过Vba,我们可以操作autocad,控制activex和其它一些应用程序,使之相互之间发生互易活动。

  2ads

  ads的全名是autocaddevelopmentsystem,它是autocad的c语言开发系统,ads本质上是一组可以用c语言编写autocad应用程序的头文件和目标库,它直接利用用户熟悉的各种流行的c语言编译器,将应用程序编译成可执行的文件在autocad环境下运行,这种可以在autocad环境中直接运行的可执行文件叫做ads应用程序。

ads由于其速度快,又采用结构化的编程体系,因而很适合于高强度的数据处理,如二次开发的机械设计cad、工程分析cad、建筑结构cad、土木工程cad、化学工程cad、电气工程cad等。

  3objectaRx

  objectaRx是一种崭新的开发autocad应用程序的工具,她以c++为编程语言,采用先进的面向对象的编程原理,提供可与autocad直接交互的开发环境,能使用户方便快捷地开发出高效简洁的autocad应用程序。

objectaRx并没有包含在autocad中,可在autodesk公司网站中去下载,其最新版本是objectaRxforautocad2000,它能够对autocad的所有事务进行完整的、先进的、面向对象的设计与开发,并且开发的应用程序速度更快、集成度更高、稳定性更强。

objectaRx从本质上讲,是一种特定的c++编程环境,她包括一组动态链接库(dll),这些库与autocad在同一地址空间运行并能直接利用

  autocad核心数据结构和代码,库中包含一组通用工具,使得二次开发者可以充分利用autocad的开放结构,直接访问autocad数据库结构、图形系统以及cad几何造型核心,以便能在运行期间实时扩展autocad的功能,创建能全面享受autocad固有命令的新命令。

objectaRx的核心是两组关键的api,即acdb(autocad数据库)和aced(autocad编译器),另外还有其它的一些重要库组件,如acRx(autocad实时扩展)、acgi(autocad图形接口)、

  acge(autocad几何库)、adsRx(autocad开发系统实时扩展)。

objectaRx还可以按需要加载应用程序;使用objectaRx进行应用开发还可以在同一水平上与windows系统集成,并与其它windows应用程序实现交互操作。

  4Visuallisp

  Visuallisp已经被完整地集成到autocad2000中,她为开发者提供了崭新的、增强的集成开发环境,一改过去在autocad中内嵌atuolisp运行引擎的机制,这样开发者可以直接使用autocad中的对象和反应器,进行更底层的开发。

其特点为自身是autocad2000中默认的代码编辑工具;用它开发

  autolisp程序的时间被大大地缩短,原始代码能被保密,以防盗版和被更改;能帮助大家使用activex对象及其事件;使用了流行的有色代码编辑器和完善的调试工具,使大家很容易创建和分析lisp程序的运行情况。

在Visuallisp中新增了一些函数:

如基于autolisp的activex/com自动化操作接口;用于执行基于autocad内部事件的lisp程序的对象反应器;新增了能够对操作系统文件进行操作的函数。

  3.autocad二次开发语言autolisp及对话框控制语言——dcl介绍

  

(1)autolisp

  autolisp的全名是listprocessinglanguage,Visaullisp是为扩展和自定义autocad功能而设计的一种编程语言,它的起源可以追溯到五十年  

代末的lisp语言。

lisp最初是为编写人工智能(ai)应用程序设计的,现在仍是许多人工智能程序的基础。

其发展过程可以描述如下:

  自从lisp语言发展到autolisp以来,autolisp一直是自定义

  autocad的标准语言。

Visuallisp(Vlisp)增加了许多重要功能,是新一代的autocadlisp语言。

作为开发工具,Vlisp提供了一个完整的集成开发环境(ide),包括编译器、调试器和其他工具,大大提高了自定义autocad的效率。

  

(2)autolisp的目的

  autolisp的目的是进行autocad二次开发包括:

  直接增加和修改autocad命令;

  随意扩大图形编辑功能;

  建立图形库和数据库;

  直接访问和修改当前图形;

  开发cad软件包。

  (3)autocad的典型应用

  autocad最典型的应用是实现参数化绘图程序设计包括:

  1)尺寸驱动程序;

  指通过改变实体标注的尺寸实现图形的自动修改。

  2)鼠标拖动程序;

  指利用autolisp提供的函数(gRRead[]),它让我们直接读取cad的输入设备,任选项追踪光标移动,当光标移动为“真”时,通过鼠标移动光标调整所需的参数值从而改变屏幕图形的大小和形状。

  (4)autolisp的特点

  1)解释性程序,它仅能以解释方式运行于autocad内部;

  2)一切成分都以函数形式给出,没有语句概念和其它语法结构,它的运行是执行一些函数再调用一些函数;

  3)程序=数据,即,数据和程序统一表达为表结构(s-表达式),故可把程序当数据来处理也可把数据当程序来处理;

  4)运行程序=对函数求值;在函数求值过程中实现函数功能;

  篇二:

软件开发之语言大汇总

  十大语言

  1.xml

  首先,你要了解xml。

我不是说仅仅是xml规格本身,还包括一系列相关的基于xml的语言:

最重要的是xhtml、xslt、xsl、dtds、xmlschema(xsd)、xpath、xquery和soap。

那些在过去5年内从未碰过键盘的人,可能不知道xml为何物。

xml是一种文本文件,使用与html类似的标记。

xml能定义一个树状结构,并能描述所含的数据。

  xml最好的一点是既能存结构化数据也能存非结构化数据。

它既能存贮和描述“规格的”(regular)表格数据,也能容纳和描述“粗糙的”(ragged)文件数据。

  xhtml是现今写html的首选方法。

因为它是形式完好(wellformed)的xml,比起古老的、通常是畸形(malformed)的html文件,xhtml格式的文件更容易处理。

  xslt和xsl是用于把xml文件转成其它格式的语言。

可转换的格式包括:

文本文件、pdF文件、html、以逗号为分隔符的文件,或其它xml文件。

  dtd和xmlschema描述xml文件所能包含的内容的类型,并让你“验证”xml文件内容的合理性,而不用写特殊代码以确保内容符合规则要求。

  xpath和xquery是用于从xml文件中抽取单个项目或一组项目的查询语言。

xquery扩展了xpath,因而更重要。

xquery与xml的关系正像sql与关系数据库的关系。

  soap是web服务之间的一个标准通讯协议。

尽管你不需要对soap标准一清二楚,你应该熟悉一般的schema和它的工作原理,以便能应用这门技术。

  2.web服务

  web服务是xml流行后的一个直接产物。

因为你能用xml描述数据和物件,因为你能用schema确保xml文件内容的合理性,因为xml是基于文本的规范,xml为跨平台通讯标准提供了一个极其方便的基本格式。

如果你还从来没碰到web服务,你可能很快就会碰到,在未来5年内,你几乎肯定会碰到。

熟悉web服务十分重要,因为它是目前所有跨不同机器、不同语言、不同平台和不同地点的通讯协议中最简单的一个。

不管你需要与否,web服务是迈向互用性的重要一步。

  xml工作组主席johnbosak曾说xml“给java一些事做”。

实际上,web服务让所有语言都有了一些事做。

web服务让在大型机上运行的cobol应用软件能调用在手持设备上运行的java应用程序、能让javaapplet与.net服务器交谈、能让微机软件与web服务器无缝连接,并提供了一个相对容易的方法,让企业不光能向外界提供数据,还能提供功能,而且是一种与语言、平台和位置都独立的方法。

  3.面向对象的编程

  很多程序员仍认为oop是象牙塔里的技术。

但如果你想一下是什么语言在过去的10年里占主导地位,你就会理解oop不是象牙塔里的技术。

oop从smalltalk开始,传到c++和pascal(delphi)。

java使oop大踏步地迈向主流,几年后的V和c#则完全确立了oop的优势地位。

尽管这些语言中的多数并不要求你必须会oop,但我觉得如果你不了解oop的基本概念也不知道如何应用这些概念,你能找到的编程工作将越来越少。

  4.java、c++、c#和V

  我把这些语言列在一起,并不是建议你成为每一种语言的专家。

我的理由是:

学习编程最有效的方法之一是看代码,而你能看到的大量的代码很可能不是用你所喜爱的语言编写的。

  在过去几年,各语言的能力越来越接近。

现在,你可以用V写windows服务、web应用程序或命令行程序。

即使你只使用一种语言,你也应该学一些其它语言,以便能看懂那些样例,并将其翻译到你所用的语言。

这4种语言是基本核心,还有其它一些满足不同需要、颇具用途的语言,如FoRtRan、cobol、apl、ada、perl和lisp。

  5.javascript

  尽管名字有些相像,但java与javascript并无关联。

为什么一个脚本语言会如此重要呢?

因为所有主流浏览器都用javascript。

如果你需要写web应用程序,你就有足够的理由学javascript。

javascript可以用作asp或的服务器语言,也可以当做用于扩展xslt的功能语言(functionallanguage)。

javascript是mozilla/netscape中用于激活基于xul的程序接口的首选语言。

javascript的一个变种actionscript是Flashmx的编程语言。

将来,javascript很可能成为新设备的编程语言,以及大型应用软件中的宏语言。

  与javascript相对照的是Vbscript。

尽管microsoft的软件对Vbscript有良好的支持,但

  Vbscript在未来的开发工作中很可能是一个糟糕的选择。

就是microsoft也倾向于用javascript(或microsoft自己的变种:

jscript)写客户端程序。

在选择脚本语言时,请选择javascript。

  6.正则表达式(Regularexpressions)

  查寻关系数据库可以用sql,查询xml可以用xpath和xquery,查询纯文本文件则可以用正则表达式。

例如,你可以用一个命令从一个html文件中查找并删除所有的注释。

各种开发语言内置的一些简单的文本查询功能,如"indexof"函数或Vb中经典的"instr"函数或"like"操作符,根本不能与正则表达式相提并论。

现在,各种主要的开发语言都提供使用正则表达式的途径。

尽管正则表达式本身既难懂更难读(是回到早期计算机时代的一种倒退),但它却是一个功能强大而且未被充分利用的工具。

  7.设计模式

  正像oop通过把对象分类以简化编程一样,设计模式对一些普遍的对象之间的交互进行分类,并赋予一个恰当的名称。

oop用得越多,设计模式就越有用。

一些最常用的模式的名称已经变成了软件开发领域共同使用的术语,所以要跟上信息的主流,你就要对设计模式有相当的理解。

  8.Flashmx

  如果你需要在客户端得到比html和css更多的图形和更强的编程功能,Flash是你的答案。

用Flash编程比开发javaapplets或写.net代码要快得多,也容易得多。

  在最新版本(mx)中,Flash不仅仅是画图和制造动画的工具,它已经成为一个编程功能强大的开发环境:

能调用soapweb服务,也能调用远端服务器上的coldFusion、java或.net程序。

Flash无处不在。

它的引擎存在于世界上大多数客户端计算机,包括手持设备、置顶盒、甚至是新的书写板电脑。

所以使用Flash能大大扩展你的程序的应用范围。

  9.linux/windows

  熟悉linux。

在一台旧机器或新机器上安装linux。

下载图形用户界面,在其基础上写一些程序。

安装apache,写一个web应用程序。

这个世界不再仅仅是属于windows,这种趋势可能还会持续下去。

如果你是一名中坚的linux开发人员,那就抛弃你对windows的憎

  恶,看看你能否做一些windows编程。

windows能继续在台式电脑上称王是有其原因的,这不仅仅是因为microsoft控制了这个市场。

  没人知道你们公司会在什么时候决定从linux转向windows(或从windows转向linux),或者你想跳到一家用另一种平台的公司,或者你想出了开发一个杀手软件的好主意,所以你要争取拥有在不同操作系统上的编程经验。

  10.sql

  尽管sql不像本文讨论的其它技术那样新,而且sql的重要性在未来10年内很可能降低,但它仍然是一项基本技能。

很多开发人员还没有掌握这门技术,或掌握得不够,不足以有效率地使用它。

不要依赖具有图形用户界面的sql生成器替你做事情,你要自己手工地写查询命令,直到你熟悉基本的sql语法为止。

了解sql不仅能帮助你日后学习xquery,你还有可能马上发现能简化或改进目前项目的方法。

  培养好奇心

  最后,(对,我意识到这是第11门技术),好奇心是你最重要的技能。

要去尝试各种东西。

新语言或新技术对你当前或将来的工作可能有用,也可能没用,但并不是你所学的每一件事都是为了工作。

不要害怕失败,万事开头难,学新技术也是如此。

大多数失败是因为人们希望太快地学到太多的东西。

要对每一点进步感到满意,不要让时间(或缺乏时间)妨碍你。

相反,你要安排时间留心、研究、试验新的开发技术和工具。

  你可能永远也没有必要成为这些技术的专家,而且我的选择可能根本不适合你的特殊情况,但通过培养好奇心,你将会发现你应该了解的东西。

  编辑注:

现在就到talk.editors.devx讨论组去评论罗素的选择,并提出你自己的清单。

  罗素·琼斯是devx的执行编辑。

e-mail地址是:

rjones@。

  篇三:

主流编程语言的学习

  主流编程语言的学习杂谈

  一、语言的开始

  1.1计算机语言发展

  第一代语言:

机器语言二进制编码

  第二代语言:

汇编语言用助记符合代替二进制编码第三代语言:

面向过程的语言(结构化)c、basic、Fortran等第四代语言:

非过程化语言(面向对象)c++、java、c#(数据库语言sql)

  第五代语言:

智能化语言(知识库语言或人工智能语言)尚未真正出现

  lisp和pRolog号称第五代语言,其实还远远不能达到自然语言的要求。

  目标是最接近日常生活所用语言的程序语言

  1.2面向过程和面向对象

  面向过程:

面向过程是一种直接的编程方法,它是按照编程语言的思路考虑问题。

尤其是像c语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序。

不同的语言解决同一个问题的过程是不一样的。

  面向对象:

面向对象是一种抽象度更高的编程方法。

它把眼光集中在了要解决问题本身而不是语言上。

它的目标是使模块的抽象度更高,可复用性更好。

面向对象的目的就是可复用。

  一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。

通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。

同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。

面向对象是指一种程序设计范型,同时也是一种程序开发的方法。

对象指的是类的集合。

它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。

  二、主流语言

  1.目前绝对主流开发语言:

c、jaVa、objective-c、c++、c#、php等

  2.其他常用语言:

basic、perl、python、ruby、pl/sql

  3.比较火的语言:

html5、css3、javascript

  20xx年5月榜单:

  前10开发语言走势图

  热门开发网站列出的20xx年你需要了解的15门编程语言:

  1.java,用于开发安卓应用程序

  2.javascript现代网站必不可少的工具。

  3.c#,用于开发微软平台和服务。

  4.php,现代web应用程序的必备

  5.c++,开发桌面软件,游戏和应用程序的首选。

  6.python,用于筛选巨大的数据集。

  7.c语言,体积小,速度快,功能强大

  8.sql,轻松查询和从大型数据库中提取数据。

  9.Ruby,简单易学,功能强大

  10.objective-c,开发ios系统的应用软件

  11.perl,与网络安全相关。

  ,微软云服务和应用开发的平台。

  13.Visualbasic,构建简单程序。

  14.R,大数据的革命力量。

  15.swift,用于开发mac和ios软件。

(中青网编译组报道)

  三、开发语言简谈

  

(一)、基础类语言

  汇编语言,又称组合语言,它是一种低级计算机语言,直接与计算机硬件底层交互。

在上世纪c、pascal等高级编程语言出现之前被广泛使用,如今只用于一些底层应用如硬件驱动程序的开发。

汇编语言的难度非常高,使得早期的软件开发工作只有一些天才级或怪才级的人才能胜任。

如今汇编语言基本上不用于软件的开发,但对于程序开发人员来说,学习汇编语言可以让你深层了解计算机与计算机程序的原理。

如今汇编语言还被国内部分大学作为必修教程,而汇编语言也会有利于程序的反编译等工作。

  c语言,(命名是因为c语言源自kenthompson发明的b语言),是一门高级计算机编程语言,设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

c语言也很适合搭配汇编语言来使用(往往可以通过内联汇编语言或与汇编语言目标文件一起连接。

对于任何一种操作系统环境,c函数的abi(applicationbinaryinterface)与汇编语言的子过程(routine/procedure)的abi一定是完全兼容的)。

尽管c语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的c语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称mcu)以及超级电脑等作业平台。

  basic,或称为basic系列语言,主要有quickbasic、qbasic、Vbscript、Visualbasic、V,甚至有适于儿童学习的smallbasic。

如今pc计算机中流行中的basic语言,正是鼎鼎大名的比尔盖茨先生编写,但最初的basic语言来自上世纪60年代两位美国计算机科学家。

  上世纪末期与本世纪初期,Visualbasic作为一款简单易学的windows应用程序开发环境,曾在中国被大量学习使用,现在你在书店还可以看到许多Visualbasic考试书籍与题目的身影,不过这些已经是早已淘汰的Vb6了,我国的计算机等级考试大纲一直都存在严重问题(这是我的想法)。

当时被流行的Vb6让很多人快速的迈入了程序员的步子,但Vb6因为并不强大,并不能有效开发大型程序。

Vb的成功并不在于改进后的basic语言本身,而应是优秀的集成开发环境(ide)与开发windows程序的便捷特性性。

  

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1