Tecnología

Inicio

Cómo convertir un programa Lisp a una macro ME10

Cómo convertir un programa Lisp a una macro ME10


CoCreate es el CAD 2D Hewlett Packard - Computer Aided Design - paquete de software. Los ingenieros utilizan para diseñar nuevas piezas. El lenguaje de macros que viene con CoCreate se llama ME10. A primera vista, ME10 se ve muy diferente del lenguaje LISP AI. La plétora de paréntesis que es tan característico de LISP es casi ausencia en ME10. Tras un examen más, sin embargo, resulta que los principales operadores en ME10 se "definen", "bucle" y "dejar" que son también los principales operadores en LISP. A excepción de las apariencias superficiales, LISP y ME10 son en realidad muy similares.

Instrucciones

1 Convertir las definiciones de funciones en LISP para la definición de funciones en ME10. Las definiciones de funciones en apariencia LISP como esto: ". end_define" (definir el nombre (parámetros) ABC), y el código equivalente en ME10 se iniciará con una línea que tiene "definir el nombre" y terminar con una línea que tiene la palabra clave Cada parámetro es que aparece en una línea separada con el "parámetro" palabra clave y el nombre del parámetro. Las instrucciones A, B y C estarán en el mismo orden en ME10 como lo fueron en LISP.

2 Modificar las instrucciones de bucle en LISP parecidas a éstas: (circular ABC). En ME10, bucles comienzan con una línea que tiene la palabra clave "bucle" y terminan con la palabra clave "end_loop" en una línea por sí mismo. Hay muchas maneras de salir de un bucle en LISP, pero sólo una forma en la ME10. Es bastante fácil de convertir los escapes de un bucle de LISP en la salida de un bucle ME10, que siempre se ve así: "condición exit_if."

3 Reescribir "dejar" declaraciones en LISP. Funcionan exactamente igual que las declaraciones "let" en ME10 excepto la sintaxis es un poco diferente. En LISP las declaraciones "let" se parecen a esto: (sean a1 a2 b2 b1 c1 c2). Esto hace que a2 obligarse a A1, B2 estar obligado a b1 y c2 estar obligado a C1. En ME10, habría tres líneas diferentes: "dejar A1 A2", "dejar que b1 b2" y "dejar que c2 c1".

4 Recuerde que en LISP una variable no tiene que ser declarado antes de su uso. Esto no es cierto en la mayoría de idiomas - incluyendo ME10. Si una variable no se ha declarado en un "let" o "parámetro" declaración en LISP, que tendrá que ser declarada en ME10. La forma más sencilla de hacerlo es declarar X con una línea que dice "local X" antes de que X aparece en cualquier otra declaración.