1.2

1
11.2. AUTOLISP DE AUTOCAD. El lenguaje AutoLISP se ofrece en AutoCAD como entorno de desarrollo a nivel interpretado; se trata de una adaptación de la variante Common Lisp, de la que se ha seleccionado un juego reducido de funciones de programación según las pautas generales del apartado 11.1.1 y una única estructura de datos, la lista 1 . Existen operaciones para manipular listas según las referencias genéricas del apartado 11.1.2. Lo que le da un carácter especial al lenguaje es que no sólo los datos estructurados sino también los procedimientos que se programan se articulan en forma de lista. Un conjunto de datos separados por espacios en blanco y delimitados por paréntesis constituyen una lista de datos; así, (1 4.5 “abc” (1 -34) 23) y (12.3 34.5 0.0) constituyen ejemplo de listas de datos; la primera es heterogénea y la segunda responde a un dato de tipo punto, pero ambas se construyen con las mismas funciones de programación. En AutoLISP no existe declaración de tipos de variable; éstas se adaptan automáticamente al tipo de la expresión que les da valor. Una función de biblioteca tiene la expresión genérica (NOMBRE arg1 arg2 … ), donde NOMBRE es una palabra reservada y arg1, arg2, etc. dependen del cometido que tenga la función; obsérvese que la función adopta la estructura de una lista, que se distingue de la de datos por dos razones: - Su primer elemento es una palabra reservada (un nombre de función). - Una función LISP realiza siempre un doble trabajo: efectúa su cometido (si es una asignación, asigna; si es un ciclo, efectúa las vueltas; si es un IF, efectúa la condición, etc.) pero además, indefectiblemente devuelve un valor al exterior. Estudiar una función AutoLISP implica conocer cómo opera y qué valor devuelve. Los códigos llevan una estructura anidada; por ejemplo, considérense estos dos formatos:(+ sum1 sum2 … ) es la sintaxis de la función de suma y ( setq var 1 expr1) es la función de asignación, que valora la variable var1 con el resultado de la expresión expr1. Entonces, ( + 3 4 ) efectúa la suma y devuelve al exterior el valor 7; (setq a ( + 3 4) ) es evaluada mediante la regla clásica: desde el paréntesis más interno hacia los más externos; de ese modo, se evalúa la suma y el valor 7 es expulsado al exterior. Ese valor expulsado hace de segundo argumento en la función setq, de modo que la variable a pasa a tomar el valor 7 (y el tipo entero) . A su vez, la función setq devuelve al exterior el valor evaluado, 7, que al no formar parte de una nueva función más externa, se pierde. Los procedimientos tienen el formato ( DEFUN nombre (argumentos) func1 func2 …), donde func1, func2, etc son funciones de biblioteca (anidadas o no) u otros procedimientos: también responden a una estructura de lista. Al final de este capítulo se presentan algunos códigos ilustrativos (ver el apartado 11.4). Incluso, como se verá en el capítulo 13, los registros asociados a una entidad se articulan en forma de lista; esta característica da un sentido muy uniforme a este lenguaje de programación. En el apartado 11.2 se irán describiendo las funciones básicas junto con algunos ejemplos y observaciones; en el apartado 11.4 se estudian técnicas básicas de aplicación práctica. 1 LISP es una contracción de la expresión LISt Processor: Procesador de Listas.

description

sobre lisp

Transcript of 1.2

  • 11.2. AUTOLISP DE AUTOCAD. El lenguaje AutoLISP se ofrece en AutoCAD como entorno de desarrollo a nivel interpretado; se trata de una adaptacin de la variante Common Lisp, de la que se ha seleccionado un juego reducido de funciones de programacin segn las pautas generales del apartado 11.1.1 y una nica estructura de datos, la lista1. Existen operaciones para manipular listas segn las referencias genricas del apartado 11.1.2. Lo que le da un carcter especial al lenguaje es que no slo los datos estructurados sino tambin los procedimientos que se programan se articulan en forma de lista. Un conjunto de datos separados por espacios en blanco y delimitados por parntesis constituyen una lista de datos; as, (1 4.5 abc (1 -34) 23) y (12.3 34.5 0.0) constituyen ejemplo de listas de datos; la primera es heterognea y la segunda responde a un dato de tipo punto, pero ambas se construyen con las mismas funciones de programacin. En AutoLISP no existe declaracin de tipos de variable; stas se adaptan automticamente al tipo de la expresin que les da valor. Una funcin de biblioteca tiene la expresin genrica (NOMBRE arg1 arg2 ), donde NOMBRE es una palabra reservada y arg1, arg2, etc. dependen del cometido que tenga la funcin; obsrvese que la funcin adopta la estructura de una lista, que se distingue de la de datos por dos razones: - Su primer elemento es una palabra reservada (un nombre de funcin). - Una funcin LISP realiza siempre un doble trabajo: efecta su cometido (si es una asignacin, asigna; si es un ciclo, efecta las vueltas; si es un IF, efecta la condicin, etc.) pero adems, indefectiblemente devuelve un valor al exterior. Estudiar una funcin AutoLISP implica conocer cmo opera y qu valor devuelve. Los cdigos llevan una estructura anidada; por ejemplo, considrense estos dos formatos:(+ sum1 sum2 ) es la sintaxis de la funcin de suma y ( setq var 1 expr1) es la funcin de asignacin, que valora la variable var1 con el resultado de la expresin expr1. Entonces, ( + 3 4 ) efecta la suma y devuelve al exterior el valor 7; (setq a ( + 3 4) ) es evaluada mediante la regla clsica: desde el parntesis ms interno hacia los ms externos; de ese modo, se evala la suma y el valor 7 es expulsado al exterior. Ese valor expulsado hace de segundo argumento en la funcin setq, de modo que la variable a pasa a tomar el valor 7 (y el tipo entero) . A su vez, la funcin setq devuelve al exterior el valor evaluado, 7, que al no formar parte de una nueva funcin ms externa, se pierde. Los procedimientos tienen el formato ( DEFUN nombre (argumentos) func1 func2 ), donde func1, func2, etc son funciones de biblioteca (anidadas o no) u otros procedimientos: tambin responden a una estructura de lista. Al final de este captulo se presentan algunos cdigos ilustrativos (ver el apartado 11.4). Incluso, como se ver en el captulo 13, los registros asociados a una entidad se articulan en forma de lista; esta caracterstica da un sentido muy uniforme a este lenguaje de programacin. En el apartado 11.2 se irn describiendo las funciones bsicas junto con algunos ejemplos y observaciones; en el apartado 11.4 se estudian tcnicas bsicas de aplicacin prctica.

    1 LISP es una contraccin de la expresin LISt Processor: Procesador de Listas.