MXPA03012019A - Metodo y sistema para grabar macros en una sintaxis independiente de lenguaje. - Google Patents

Metodo y sistema para grabar macros en una sintaxis independiente de lenguaje.

Info

Publication number
MXPA03012019A
MXPA03012019A MXPA03012019A MXPA03012019A MXPA03012019A MX PA03012019 A MXPA03012019 A MX PA03012019A MX PA03012019 A MXPA03012019 A MX PA03012019A MX PA03012019 A MXPA03012019 A MX PA03012019A MX PA03012019 A MXPA03012019 A MX PA03012019A
Authority
MX
Mexico
Prior art keywords
instruction
computer
list
language
instructions
Prior art date
Application number
MXPA03012019A
Other languages
English (en)
Inventor
Mathew Abraham
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of MXPA03012019A publication Critical patent/MXPA03012019A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Valve-Gear Or Valve Arrangements (AREA)

Abstract

Un Lenguaje de Instrucciones Objeto (OIL) proporciona un metodo para grabar macros en una sintaxis independiente del lenguaje de computadora de manera que la macro se puede convertir en el codigo de origen de multiples lenguajes de computadora, sin tener que volver a grabar la macro ni traducir la macro a partir del lenguaje grabado a un lenguaje alternativo, reduciendo mediante lo mismo el tiempo que se necesita para crear macros para multiples lenguajes de computadora, reduciendo la probabilidad del error inherente al repetir una sola tares multiples veces, y proporcionando a los usuarios del software una oportunidad par grabar macros en el lenguaje preferido del usuario.

Description

METODO Y SISTEMA. PARA GRABAR MACROS EN UNA SINTAXIS INDEPENDIENTE DE LENGUAJE CAMPO DE LA INVENCION La invención se relaciona en general con sistema para grabar macros dentro de un entorno de computación. De manera más particular, la presente invención se relaciona con un método y sistema para crear instrucciones de macro en una sintaxis que es independiente del lenguaje de la computadora en el cual se grabará eventualmente la macro, de manera que se puede procesar la macro en múltiples lenguajes del código de origen, sin tener que recrear la macro.
ANTECEDENTES DE LA INVENCION Los dispositivos de computación son bien conocidos en la técnica y se usan ampliamente, Por ejemplo, los dispositivos de computación pueden tomar la forma de una computadora personal, una terminal de computadora centralizada con acceso a la terminal de computadora, o un sistema ampliamente distribuido con los dispositivos de computación conectados a una red tal como la Internet. Aunque algunos dispositivos de computación pueden operar con poca o ninguna intervención humana, muchos dispositivos de computación requieren la entrada de un ser humana para operar. Los dispositivos de computación, tal como la computadora personal, típicamente tienen un teclado para introducir información numérica y textual. Dependiendo del tipo de trabajo que realice el dispositivo de computación, el dispositivo de computación puede tener también otros tipos de entradas. Por ejemplo, con la popularidad de las interfases gráficas del usuario, se ha incrementado dramáticamente el uso de dispositivos de introducción gráficos. Los dispositivos de introducción gráficos incluyen dispositivos tales como un ratón de computadora, tabletas de gráficas, digitalizadores , y plumas ópticas . Estos dispositivos permiten que un elemento gráfico tal como un cursor, se mueva y se coloque en una pantalla de computadora. Este elemento gráfico se puede usar par seleccionar comandos funcionales para dirigir la operación de la computadora o puede ayudar en la introducción de información . El ratón de computadora que se mencionó anteriormente es uno de los dispositivos de introducción gráficos más populares . El ratón se conecta al dispositivo de computación y se usa para seleccionar comandos e introducir información gráfica. Por medio de mover el ratón a través de una superficie, los movimientos relativos del ratón se comunican al dispositivo de computación, moviendo mediante lo mismo el cursor gráfico. Los botones en el ratón accesan y activan los comandos y la información gráfica de entrada por medio de colocar el cursor. Los dispositivos de computación pueden aceptar también otras formas de un usuario que se basan en la aplicación que está operando en el dispositivo de computación, que incluye introducción por voz, introducción desde cámaras digitales, introducción desde grabadoras de video, e introducción desde otros recursos de computación que se acoplan por medio de una conexión de red de área local o amplia al dispositivo de computación. Cuando está operando un dispositivo de computación, un usuario puede interactuar con los dispositivos de entrada para dirigir la operación del dispositivo de computación. Muchas veces el dispositivo de computación requiere la misma serie de entradas para realizar una operación particular. La realización de este conjunto de operaciones repetitivas puede incluir varias entradas desde uno o más dispositivos de entrada. Por ejemplo, una operación particular pudiera requerir una acción del ratón para iniciar un programa y después, introducir de manera textual una contraseña de acceso con el teclado. Frecuentemente se necesita un teclado, el ratón, y otras entradas para concluir la operación repetitiva. Cada vez que el usuario desea realizar esta operación repetitiva, el usuario debe pasar a través de la misma secuencia usando los mismos dispositivos de entrada. Esto no solo consume tiempo, sino que la secuencia puede ser proclive a errores. En algunas situaciones, se pueden simplificar las operaciones repetitivas con una macro. Las macros se usan para automatizar el teclado, ratón y otras entradas repetitivas en una aplicación particular. En general, las macros son típicamente archivos que contienen instrucciones repetitivas. Una vez que se crea, la macro se puede reproducir mediante el dispositivo de computación. Por ejemplo, muchas aplicaciones de software tienen capacidades para grabar y reproducir la macro. En estas aplicaciones de software, un usuario pudiera grabar una macro para realizar una operación particular o una serie de operaciones y dar un nombre a esa macro. Después de eso, esa operación o serie de operaciones se pueden realizar por medio de ejecutar la macho que se nombró, ahorrando mediante lo mismo el tiempo y esfuerzo de repetir todos los pasos de la macro. Para ejecutar la macro la aplicación de software típicamente tiene una instalación para reproducir la macro, la cual se puede iniciar mediante el comando a mediante el uso de un comando de método abreviado. Con la tecnología para grabar macros actual, generalmente es posible grabar una macro en solamente un lenguaje, el Visual Basic para Aplicaciones (VBA) . Sin embargo, existen muchos otros lenguajes de programación que se podrían usar de otra manera para registrar y ejecutar las macros. Adicionalmente, los usuarios prefieren grabar las macros en el lenguaje de su selección, que se basa en la preferencia personales, habilidades, y nivel de destreza del usuario. Con el propósito de grabar macros en un lenguaje que no sea el VBA, un desarrollador de la aplicación tendría que volver a escribir la grabadora de la macro para cada lenguaje en el cual el usuario desea grabar las macros . Este proceso no solo es caro y consumidor de tiempo, sino que también es proclive al error y lleva a un comportamiento inconsistente entre las macros que se grabaron en diferentes lenguajes. El aprovisionamiento de un método y sistema para grabar una macro en múltiples lenguajes con el mínimo esfuerzo mediante la aplicación de software, le ahorraría tiempo y dinero a los usuarios y a los desarrolladores de la aplicación.
COMPENDIO DE LA INVENCION El método y sistema inventivo que se describe en la presente proporciona un medio para grabar una macro de computadora en una sintaxis independiente del lenguaje de computadora, permitiendo mediante lo mismo que una aplicación de software grabe las instrucciones solamente una vez y después convertir las instrucciones en un código de origen de cualquiera de un número de lenguajes de computadora. De esta manera, un aspecto de la presente invención es permitir que un usuario, que desea grabar una macro en uno o más lenguajes de computadora, empezar la grabación de la macro por medio de encender un sistema de grabado en el sistema de computadora. El sistema de grabado típicamente comprende una grabadora de la macro que se localiza en una máquina grabadora de macros . Tanto la grabadora de macros como la máquina grabadora de macros se pueden localizar dentro de una aplicación de software en el sistema de computadora. El usuario puede proceder entonces por medio de realizar uno o más acciones, las cuales el usuario desea grabar en el sistema de computadora. Las acciones se realizan típicamente en una aplicación de software en el sistema de computadora. Estas acciones pueden incluir una secuencia de comandos o golpes de teclado que ocurran mientras que el usuario esté interactuando con la aplicación de software. Las acciones se convierten típicamente mediante la aplicación de software en una serie de instrucciones que se llama la lista de instrucciones que tiene una sintaxis independiente del lenguaje de computadora. La lista de instrucciones típicamente representa una interpretación legible por computadora de las acciones que implementa el usuario y que graba el sistema de grabado. La sintaxis independiente del lenguaje de computadora de las instrucciones puede permitir que las instrucciones, una vez creadas, se conviertan en uno o más códigos de origen de los diferentes lenguajes de computadora. La sintaxis independiente del lenguaje de computadora no refleja típicamente el lenguaje de computadora que usa la aplicación de software. La lista de instrucciones típicamente contiene tanto instrucciones como operandos en una relación de uno-a-uno o de uno-a-cero, respectivamente. El operando típicamente especifica la información sobre la que se va a operar o manipular. Las acciones del usuario se convierten en la lista de instrucciones mediante la aplicación de software con la ayuda de un constructor, el cual se puede localizar en la aplicación de software. Las instrucciones se' construyen en una sintaxis independiente del lenguaje de computadora. Una vez que se completa, la lista de instrucciones se puede enviar a uno o más procesadores que se van a convertir en el código de origen de un lenguaje de computadora particular. Debido a que la lista de instrucciones se escribe en una sintaxis independiente del lenguaje de computadora, la lista de instrucciones se puede convertir en diferentes lenguajes de computadora por parte de los diferentes desarrolladores de aplicaciones y usuarios que se basan en las preferencias del desarrollador y el usuario. Por ejemplo, el Usuario A puede seleccionar grabar la macro en el Lenguaje A, mientras que el Usuario B puede seleccionar grabar la macro en el Lenguaje B. Si los dos usuarios graban las mismas acciones, entonces se genera la misma lista de instrucciones usando la sintaxis independiente de lenguaje, pero la lista de instrucciones se procesa mediante diferentes procesadores en el Lenguaje A y el Lenguaje B. En otra modalidad ejemplar, es posible que la lista de instrucciones que se creó usando la sintaxis independiente de lenguaje se pueda convertir en múltiples lenguajes de computadora el mismo tiempo, sin tener que recrear las instrucciones ni la lista de instrucciones antes de que se envíen a cada procesador diferente.
BREVE DESCRIPCION DE LOS DIBUJOS Para un entendimiento más completo de la presente invención y las ventajas de la misma, ahora se hace referencia a la siguiente descripción en conjunción con os dibujos acompañantes, en los cuales: La Figura 1A es un diagrama de bloques que ilustra un entorno de operación ejemplar para la implementación de las diferentes modalidades de la presente invención. La Figura IB es un diagrama de bloques de un sistema para construir y grabar macros para grabar macros en un lenguaje de instrucciones objeto que se construyó de conformidad con una modalidad ejemplar de la presente invención . La Figura 2 es un diagrama de bloques de un diagrama de lenguaje de diseño unificado que ilustra la construcción de una lista de instrucciones que usa un lenguaje de instrucciones objeto de conformidad con una modalidad ejemplar de la presente invención.
La Figura 3 es una gráfica de flujo que ilustra un proceso para grabar una macro que usa un lenguaje de instrucciones objeto de conformidad con una modalidad ejemplar de la presente invención. La Figura 4 es una gráfica de flujo que ilustra un proceso para crear una lista de instrucciones para una macro que usa un lenguaje de instrucciones objeto de conformidad con una modalidad ejemplar de la presente invención. La Figura 5 es una gráfica de flujo que ilustra un proceso para verificar la construcción apropiada de una instrucción que se escribe en un lenguaje de instrucciones objeto de conformidad con una modalidad ejemplar de la presente invención.
DESCRIPCION DETALLADA DE LAS MODALIDADES EJEMPLARES La presente invención soporta un método implementado por computadora para grabar una macro en un lenguaje de instrucciones objeto ("OIL," por sus siglas en inglés) el cual es una sintaxis independiente de lenguaje de computadora. Esta sintaxis independiente se puede usar para grabar una macro en un lenguaje y después implementarla en una variedad de otros lenguajes de programación. La sintaxis independiente de OIL ayuda a los programadores por medio de convertir los pasos de instrucción de una macro en un lenguaje especifico a un conjunto universal de instrucciones que se pueden adaptar a una variedad de lenguajes. Utilizando del lenguaje OIL, un programador no tendrá que recrear las mismas macros en una variedad de diferentes lenguajes. Las invenciones se pueden entender mejor mediante la referencia a las figuras acompañantes . Aunque las modalidades ejemplares de la presente invención se describirán en general en el contexto de un módulo de software y un sistema de operación que se ejecuta en una computadora personal, aquellos expertos en la técnica reconocerán que la presente invención también se puede implementar en conjunción con otros módulos de programa para otros tipos de computadoras. Además, aquellos expertos en la técnica reconocerán que la presente invención se puede implementar en un entorno de computación independiente o distribuido. En un entorno de computación distribuido, los módulos de programa se pueden localizar físicamente en diferentes dispositivos de almacenamiento de memoria locales y remotos. La ejecución de los módulos de programa puede ocurrir de manera local de una manera independiente o remota en una manera del cliente/servidor. Los ejemplos de estos entornos de computación distribuidos incluyen redes de área local de una oficina, redes de computadora a través de toda la empresa, y la Internet global. La descripción detallada que sigue se representa mayormente en términos de los procesos y las representaciones simbólicas de las operaciones mediante componentes de computadora convencionales, que incluyen unidades de procesamiento, dispositivos de almacenamiento de memoria, dispositivos de despliegue visual y dispositivos de entrada. Estos procesos y operaciones pueden utilizar componentes de computadora convencionales en un entorno de computación distribuida, que incluye servidores de archivo remotos, servidores de computadora remotos, y dispositivos de almacenamiento de memoria remotos . Cada uno de estos componentes de computación distribuidos convencionales es accesible mediante una unidad de procesamiento por medio de una red de comunicaciones. Los procesos y operaciones que realiza la computadora incluyen la manipulación de señales mediante una unidad de procesamiento o servidor remoto y el mantenimiento de estas señales dentro de las estructuras de datos residentes en uno o más dispositivos de almacenamiento de memoria local o remota. Estas estructuras de datos imponen una organización física sobre la recolección de datos que se almacena dentro de un dispositivo de almacenamiento de memoria y representan elementos eléctricos o magnéticos específicos. Estas representaciones simbólicas son elementos que usan aquellos expertos en la técnica de programación de computadora y construcción de computadoras para transmitir de la manera más efectiva las enseñanzas y descubrimientos a otros expertos en la técnica. La presente invención incluye un programa de computadora que abarca las funciones que se describen en la presente y que se ilustran en las gráficas de flujo anexas (o diagramas de flujo lógicos) . Sin embargo, deberá ser aparente que podría haber muchas maneras diferentes para implementar la invención en la programación de computadoras, y no se deberá considerar la invención limitante de ninguna manera a ningún conjunto de instrucciones de programas de computadora. Además, un programador experto podrá escribir este programa de computadora para implementar la invención que se describe sin dificultad, basándose en las gráficas de flujo y la descripción asociada en el texto de aplicación, por ejemplo. Por lo tanto, no se considera necesaria la descripción de un conjunto particular de instrucciones de código de programa para un entendimiento adecuado sobre cómo hacer y usar la presente invención. En la siguiente descripción se explicará con más detalle la funcionalidad inventiva del programa de computadora que se reivindica, en conjunción con las figuras restantes que ilustran el flujo del programa. Con referencia ahora a los dibujos, en los cuales los números iguales representan elementos iguales a través de todas las diferentes figuras, se describirán los aspectos de la presente invención y un entorno de operación ejemplar para la implementación de la presente invención.
La Figura 1A es un diagrama de bloques que ilustra un entorno de operación ejemplar 1 para la implementación de diferentes modalidades de la presente invención. Aquellos expertos en la técnica apreciarán que la Figura 1A y la descripción asociada se presentan para proporcionar una descripción breve, general de una modalidad del hardware y módulos de programa de la computadora, y que hay información adicional fácilmente disponible en manuales de programación apropiados, guias del usuario, y publicaciones similares. El entorno de operación ejemplar 1 que se ilustra en la Figura 1A incluye un dispositivo de computación de propósito general que puede estar en la forma de una computadora personal convencional 10. Como se muestra en la Figura 1A, la computadora personal 10 opera en un entorno en red con conexiones lógicas hacia un servidor remoto 110. Las conexiones lógicas entre la computadora personal 10 y el servidor remoto 110 se representan mediante una red de área local 12 y una red de área amplia 13. Aquellos de experiencia común en la técnica reconocerán que en esta configuración de cliente/servidor, el servidor remoto 110 puede funcionar como un servidor de archivo o servidor de computadora. La computadora personal 10 incluye una unidad de procesamiento 14, tal como un microprocesador "PENTIUM" que fabrica la Intel Corporation de Santa Clara, California. La computadora personal también incluye la memoria de sistema 15, que incluye la memoria de sólo lectura (ROM) 16 y la memoria de acceso aleatorio (RAM) 17, las cuales se conectan al procesador 14 mediante una barra colectora 18. Una modalidad ejemplar de la computadora 10 utiliza un sistema de entrada/salida básico (BIOS) 19, el cual se almacena en la ROM 16. Aquellos expertos en la técnica reconocerán que el BIOS 19 es un conjunto de rutinas básicas que ayuda a transferir la información entre los elementos de la computadora personal 10. Aquellos expertos en la técnica también apreciarán que la presente invención se puede implementar en computadoras que tienen otras arquitecturas, tales como computadoras que no usan un BIOS 19, y aquellas que utilizan otros tipos de microprocesadores para una unidad de procesamiento 14. Dentro de la computadora personal 10, se coloca una unidad de disco duro local 20 a la barra colectora 18 del sistema por medio de una interfase 21 de la unidad de disco duro. Una unidad de disco flexible 22, la cual se usa para leer o escribir para un disco flexible 23, se conecta a la barra colectora 18 del sistema por medio de una interfase 24 de la unidad de disco flexible. Una unidad de CD-ROM o DVD 25, la cual se usa para leer un disco CD-ROM o DVD 26, se conecta a la barra colectora 18 del sistema por medio de una interfase de CD-ROM o DVD 27. Un usuario puede introducir comandos e información dentro de la computadora personal 10 por medio de usar dispositivos de entrada, tales como un teclado 28 y/o dispositivo de colocación, tal como un ratón 29, los cuales se conectan a la barra colectora 18 del sistema por medio de una interfase de puerto en serie 30. Otros tipos de dispositivos apuntadores (no se muestran en la Figura 1) incluyen cojinetes de rastreo, esferas de rastreo, plumas digitalizadoras , guantes de datos, y otros dispositivos adecuados para colocar un cursor sobre un monitor 105. El monitor 105 u otro tipo de dispositivo de despliegue visual se conecta a la barra colectora 18 del sistema por medio de un adaptador de video 32. Como se describe en la Figura 1A, se puede almacenar un número de módulos de programa en la ROM 16, RAM 17, disco duro 21, disco flexible 23, o disco de CD-ROM/DVD 26, tal como un sistema de operación 36, un módulo de programa de aplicación 117, un módulo de programa del navegador 37, y un programa de documentos 38. Los módulos de programa incluyen rutinas, subrutinas, programas, objetos, componentes, estructuras de datos, etcétera, los cuales realizan tareas particulares o implementar tipos de datos abstractos particulares . El servidor remoto 110 en este entorno en red se conecta a un dispositivo de almacenamiento de memoria remoto 33. Este dispositivo de almacenamiento de memoria remoto 33 es típicamente un dispositivo de gran capacidad tal como una unidad de disco duro, unidad de CD-ROM o DVD, unidad magneto-óptico o similar. Aquellos expertos en la técnica entenderán que los módulos de programa, tal como un módulo de programa de aplicación 117, se proporcionan al servidor remoto 110 por medio de un medio legible por computadora, la computadora personal 10 se conecta al servidor remoto 110 mediante una interfase de la red 34, la cual se usa para comunicarse sobre una red de área local (LAN, por sus siglas en inglés) 12. En algunas modalidades, la computadora personal 10 también se conecta al servidor remoto 110 mediante un módem 35, el cual se usa para comunicarse sobre una red de área amplia (WAN, por sus siglas en inglés) 13, tal como la Internet. El módem 35 se conecta a la barra colectora 18 del sistema por medio de la interfase de puerto en serie 30. También se puede conectar el módem 35 a la red pública de conmutación telefónica (PSTN, por sus siglas en inglés) o la red de televisión de antena de comunidad (CATV, por sus siglas en inglés). Aunque se ilustra en la Figura 1A como externa a la computadora personal 10, aquellos de experiencia común en la técnica pueden reconocer que el módem 35 también puede ser interna a la computadora personal 10, comunicándose así directamente por medio de la barra colectora 18 del sistema. Es importante notar que no se requiere la conexión al servidor remoto 11 por medio tanto de la LAN 12 como de la WAN 13, sino que simplemente ilustra métodos alternativos para proporcionar una trayectoria de comunicación entre la computadora personal 10 y el servidor remoto 110. Aquellos expertos en la técnica también apreciarán que los módulos de programa, tal como el sistema de operación 36, el módulo de programa de aplicación 117, el módulo de programa del navegador 37, y el programa de documentos 38 se pueden proporcionar a la computadora personal 10 por medio del medio legible por computadora. En las modalidades ejemplares del entorno de operación 1, el medio legible por computadora puede incluir los dispositivos de almacenamiento de memoria local o remoto, los cuales pueden incluir la unida de disco duro local 20, el disco flexible 23, el CD-ROM/DVD 26, la RAM 17, la RAM 16, y el dispositivo de almacenamiento de memoria remoto 33. En algunas modalidades ejemplares de la computadora personal 10, la unidad de disco duro 20 se usa para almacenar datos y programas. Aunque no se muestran otros elementos de la computadora personal 10 ni el entorno de operación 1 en general, aquellos de experiencia común en la técnica apreciarán que estos componentes y la interacción entre ellos son conocidos. De conformidad con lo anterior, no se necesitan describir detalles adicionales con respecto a los elementos de la computadora personal 10 y el entorno de operación 1 en general en conexión con la presente invención, para que lo implementen aquellos de experiencia común en la técnica . Con referencia a la Figura IB, se muestra un diagrama de bloques que ilustra una sistema para construir y grabar macros para grabar macros en un lenguaje OIL 100 que se construye de conformidad con una modalidad ejemplar de la presente invención. El sistema para construir y grabar macros 100 comprende una interfase del usuario 105, un servidor 110, una base de datos 115, y una aplicación 117. La aplicación 117 comprende una biblioteca de macros 120, un subsistema Visual Studio para Aplicaciones (VSA) 125, y/o el subsistema visual Basic para Aplicaciones (VBA) 130. La biblioteca de macros 120 comprende los procesadores 135 y una máquina grabadora de macros 140. La máquina grabadora de macros 140 comprende una grabadora 145, un constructor 150, una lista de instrucciones 155, un verificador 160, y un mapa de variables 165. EL subsistema VSA 125 comprende una grabadora VSA 175. El subsistema VBA 130 comprende una grabadora VBA 170. La interfase del usuario 105 se une de manera comunicativa por medio de una red de computadora al servidor 110. La interfase del usuario 105 le proporciona a un usuario un elemento para comunicarse con el servidor 110, la base de datos 115, y la aplicación 117. Por ejemplo, la interfase del usuario 105 puede transmitir información a la aplicación 117 y la base de datos 115 a través del servidor 110, que incluye datos y consultas. La interfase del usuario 105 puede recibir información desde la base de datos 115 y la aplicación 117 a través del servidor 110. En una modalidad ejemplar, la interfase del usuario 105 es una computadora personal. El servidor 110 se une de manera comunicativa por medio de una red de computadora a la interfase del usuario 105 y la base de datos 115. El servidor 110 típicamente representa una computadora o programa que responde a los comandos del usuario a través de la interfase del usuario 105. La base de datos 115 se une de manera comunicativa por medio de una red de computadora al servidor 110 y la aplicación 117. La base de datos 115 contiene información que se relaciona con las aplicaciones del software, procesadores de lenguaje, y grabadoras de macros . En una modalidad ejemplar, la base de datos 115 es una base de datos del servidor del lenguaje de consultas estructurado (SQL, por sus siglas en inglés) . La aplicación 117 es una aplicación de software que se diseña para ayudar al usuario en el desempeño de una tarea específica, que incluye procesamiento de palabras, contabilidad, o administración de inventario. La biblioteca de macros 120 es una biblioteca de enlace dinámico. En una modalidad ejemplar, la biblioteca de macros 12 está contenida dentro de la aplicación 117, pero la biblioteca de macros 120 puede residir independiente de la aplicación 111, lo que permite que múltiples aplicaciones 117 accesen la biblioteca de macros. Los procesadores 135 comprenden uno o más de una multitud de procesadores de código que incluyen un procesador C Plus Plus (C++) , un procesador C Sharp (C#) , un procesador VBA, y un procesador Visual Basic. et (VB.Net). Los procesadores 135 típicamente convierten las instrucciones que se reciben de la máquina grabadora de macros 140 en el código de origen específico del lenguaje. La grabadora 145, el constructor 150, la lista de instrucciones 155, el verificador 160, y el mapa de variables 165 típicamente son componentes del modelo de objetos componentes (COM, por sus siglas en inglés) . En una modalidad ejemplar, la grabadora 145, el constructor 150, la lista de instrucciones 155, el verificador 160, y el mapa de variables 165 residen dentro de la aplicación 117. Sin embargo, en una modalidad ejemplar alternativa, estos componentes de COM pueden residir independientes de la aplicación 117, de manera que una multitud de aplicaciones 117 podrían accesar un solo constructor 150. La grabadora 145 representa un programa que graba y almacena las macros que crearon las acciones del usuario en la interfase del usuario 105. EL constructor 150 puede crear una lista de instrucciones vacía 155, recibir información desde la grabadora 145, construir una instrucción usando la sintaxis independiente del lenguaje, enviar la instrucción al verificador 160 y el mapa de variables 165, para asegurar la construcción apropiada de la instrucción y agregar la instrucción a la lista de instrucciones 155. La grabadora 145 puede enviar entonces la lista de instrucciones 155 a los procesadores 135 para convertir la lista de instrucciones 155 en el código de origen especifico del lenguaj e . La lista de instrucciones 155 es una lista de instrucciones y pares operandos en donde el operando puede ser una parte opcional de la instrucción, dependiendo del formato de la instrucción. En una modalidad ejemplar, la lista de instrucciones contiene tanto instrucciones como operandos en cualesquiera de las relaciones de uno-a-uno o de uno-a-cero, respectivamente, üna vez que se completa, la lista de instrucciones 155 típicamente contiene un conjunto de instrucciones en sintaxis independiente del lenguaje de la computadora. La lista de instrucciones terminada se envía a los procesadores 135 mediante la grabadora 145. El verificador 160 determina si las instrucciones en la lista de instrucciones 155 contienen el número y el tipo de operandos correctos. Por ejemplo, el verificador 160 puede asegurarse de que los procesadores 135 no tendrán un problema para generar el código de origen a partir de la lista de instrucciones 155 que se recibió. Una vez que se determina la construcción apropiada, el verificador 160 envia la instrucción de regreso al constructor 150. El mapa de variables 165 puede recibir una instrucción del constructor 150, almacenar los nombres y tipos de variables dentro de la instrucción, asegurarse de que el usuario no esté tratando de crear una variable con el mismo nombre pero diferente tipo, y regresar la instrucción de regreso al constructor 150. El subsistema VSA 125 es una biblioteca de enlace dinámico que comprende una grabadora VSA 175. La grabadora VSA 175 típicamente recibe el código de origen de la macro de un procesador VSA 135 y guarda el código de origen dentro de la aplicación VSA 117 que se asocia con el documento en el cual se creó la macro. El subsistema VBA 130 es una biblioteca de enlace dinámico que comprende una grabadora 170. La grabadora VBA 170 típicamente recibe el código de origen de la macro de un procesador VBA 135 y guarda el código de origen dentro de la aplicación VBA 117 que se asocia con el documento en el cual se creó la macro. En una modalidad ejemplar, el intento del sistema 100 es generar una lista de instrucciones 155 que pone como objetivo una pila de procesamiento en donde cada instrucción tiene el tipo y número correctos de operandos correspondientes . La Figura 2 es un diagrama del lenguaje de diseño unificado (UML, por sus siglas en inglés) que se presenta para ilustrar la estructura interna de una lista de instrucciones 200, que se crea usando una sintaxis independiente del lenguaje de computadora, que se construye de conformidad con una modalidad ejemplar de la presente invención. Ahora con referencia a las Figuras IB y 2, la lista de instrucciones 200 ejemplar comprende las instrucciones 205 y los operandos 250 que residen en la lista de instrucciones 155 del constructor 150. La instrucción 205 comprende callvirt 210, ldloc 215, stloc 220, ldc_i4 225, ldc_r8 230, Idstr 235, pop 240, y comment 245. El operando 250 comprende la variable 255, el método 260, y la literal 265. El diamante 207 y la designación 0..1 252 típicamente representan que ya sea el operando cero o el uno 250 se asocia con cada instrucción 205 en la lista de instrucciones 155. La variable 155 es un tipo de operando 250 y se define típicamente como una ubicación de almacenamiento nombrada que puede contener datos que se pueden modificar durante la ejecución del programa. El método 260 es un tipo de operando 250 que se define como un proceso que realiza un objeto cuando recibe un mensaje. La literal 265 es un tipo de operando 250 que se define como un valor, que se usa en una aplicación 117, que se expresa como sí mismo más bien que como un valor de la variable o el resultado de una expresión. Por ejemplo, el número "25", el carácter "a", y el "hola" en cadena, son todos ejemplos de las literales 265. El callvirt 210 de la instrucción representa una llamada para un método virtual. El callvirt 210 toma un método 260 como su operando 250. El callvirt 210 también requiere que cualesquier argumentos que se asocien con el método 260 se hayan colocado ya en una pila de procesamiento. La pila de procesamiento se usa durante el procesamiento de la lista de instrucciones 155, subiendo y bajando el tamaño de la pila de procesamiento a medida que la lista de instrucciones 155 se procesa. En una modalidad ejemplar, algunas instrucciones en la lista de instrucciones 155 colocan los elementos sobre la pila de procesamiento, algunas quitan elementos de la pila de procesamiento, y algunas instrucciones dejan la pila de procesamiento sin alterar. El callvirt 210 consume entonces los argumentos de la pila de procesamiento y ejecuta el método 260. Si el método 260 regresa algo, el callvirt 210 empuja la información que se regresó de vuelta a la pila de procesamiento. El ldloc 215 representa el acto de cargar una variable local, la cual toma la variable 255 a la que hace referencia la instrucción de ldloc 215 y empuja la variable 255 sobre la pila de procesamiento para que la consuma alguien más, ya sea otra operación de almacenamiento o una llamada. El stloc 220 representa el acto de almacenar una variable local, la cual toma un valor que está en la pila de procesamiento y asigna el valor dentro de una variable 255. El ldc_i4 225 representa la carga de un entero de cuatro dígitos sobre la pila de procesamiento y toma una literal 265 como su operando correspondiente. Por ejemplo, si se usó el ldc_i4 de la instrucción 205, tendría que tomar los números que incluyen 4, 8, y 12. El ldc_r8 representa la carga de un valor doble de ocho bytes sobre la pila de procesam ento. ?1 igual que ldc_i4, el ldc_r8 toma una literal 265 como su operando correspondiente. El ldstr 235 carga una cadena sobre la pila y toma una literal 265 como su operando correspondiente. El pop 240 no toma un operando correspondiente, sino que más bien, simplemente desecha cualquier operando 250 que esté en la parte superior de la pila de procesamiento en el momento en que se da la instrucción pop 240. La instrucción comment 245 toma una literal 265 y lo presenta como una cadena en un comment. El procesador 135 puede modificar la cadena para ponerla en un formato apropiado para el lenguaje. Aquellos expertos en la técnica se darán cuenta de que las instrucciones que se muestran como parte de la lista de instrucciones 200 son solamente un pequeño subconjunto del conjunto total posible de instrucciones, que incluyen instrucciones aritméticas y lógicas, las cuales se pueden procesar usando la sintaxis independiente de lenguaje. Las Figuras 3-5 son diagramas de gráficas de flujo lógicas gue ilustran los procesos implementados por computadora gue se completan por medio del método ejemplar para grabar una macro en una sintaxis independiente del lenguaje de computadora. La Figura 3 es un diagrama de gráfica de flujo lógica 300 gue se presenta para ilustrar los pasos generales de un proceso ejemplar para grabar una macro en una sintaxis independiente del lenguaje de computadora dentro del entorno de operación del sistema de grabado de macros ejemplar 100 de la Figura 1. Ahora con referencia a las Figuras IB y 3, el método ejemplar 300 empieza en el paso START (INICIO) y procese al paso 305, en el cual un usuario abre una aplicación 117 a partir de la interfase del usuario 105. La interfase del usuario 105 típicamente representa un punto desde el cual el cliente puede accesar la aplicación 117 a través del servidor 110 y la base de datos 115. El usuario típicamente abre la aplicación 117 por medio de seleccionar un icono que corresponda a la aplicación 117 en un monitor en la interfase del usuario 105. En el paso 310, el usuario empieza a grabar una macro. En una modalidad ejemplar, el usuario empieza a grabar una macro por medio de seleccionar ^grabar macro" de un cuadro desplegable en la aplicación 117. Después, puede aparecer un cuadro de diálogo de manera que el usuario puede nombrar la macro que se va a grabar, seleccionar en dónde almacenar la macro en la base de datos 115 y proporcionar una descripción breve de la macro, tal como el propósito para crear la macro o la función de la macro. Una vez que el usuario ha completado la descripción de la macro, el usuario puede cerrar el cuadro de diálogo y la aplicación 117 empieza a grabar la macro. En el paso 315, el usuario realiza una acción que se puede grabar y la aplicación 117 realiza la acción que se puede grabar en el paso 320. Una acción que se puede grabar es cualquier operación que el usuario hace en la aplicación 117, que incluye un golpe de tecla, una selección de datos de un área particular de la aplicación 117, o una determinación matemática. En el paso 325, se conduce una investigación para determinar si la acción que se puede grabar, que realizó el usuario, se grabará. Si no es asi, se sigue la bifurcación "NO" al paso 365, en donde se conduce otra investigación para determinar si el usuario realiza otra acción que se pueda grabar. Si la acción va a ser grabada, se sigue la bifurcación "YES" ("SI") al paso 330. En el paso 330, la aplicación 117 construye una lista de instrucciones 155 en la máquina grabadora de macros 140. La lista de instrucciones 155 típicamente contiene una serie de instrucciones que delinean la operación de la macro en una sintaxis independiente del lenguaje de computadora. Las instrucciones son una interpretación de las acciones que se grabaron del usuario en una sintaxis independiente del lenguaje de computadora. En el paso 335, la aplicación 117 envia la lista de instrucciones 155 a la máquina grabadora de macros 140. La máquina grabadora de macros 140 envia la lista de instrucciones 155 a uno o más procesadores 135 en el paso 345. La determinación sobre cuándo enviar la lista de instrucciones 155 a uno o más procesadores 135, la determina típicamente la aplicación 117. Por ejemplo, una vez que el usuario completa una acción que generará una línea correspondiente del código de origen, la aplicación 117 generalmente enviará la lista de instrucciones 155, que se creó a partir de la acción del usuario, al procesador 135. El procesador 135 puede residir dentro o fuera de la aplicación 117 y puede incluir los procesadores 135 que pueden generar el código en múltiples lenguajes de computadora, tales como C++, C#, VBA, y VB.Net. La grabadora de macro 145 puede enviar una sola lista de instrucciones 155 para uno o más procesadores 135 en el paso 345, para generar uno o más tipos de código de origen de lenguaje específicos que se basan en el uso pretendido del usuario de la macro y la preferencia de lenguaje del usuario. En el paso 350, el procesador 135 convierte la lista de instrucciones 155 a partir de la sintaxis independiente del lenguaje de computadora en un código de origen específico del lenguaje, tal como C++, C#, VBA, y VB.Net. El procesador 135 envía el código de origen específico del lenguaje a 1 máquina grabadora de macros 140, en el paso 355. En el paso 360, la máquina grabadora de macros 140 guarda el código de origen específico del lenguaje en una ubicación apropiada. En una modalidad ejemplar, las ubicaciones apropiadas para guardar el código de origen incluyen la base de datos 115, el subsistema VSA 125, el subsistema VBA 130 o la aplicación 117. Por ejemplo, la grabadora 145 puede enviar la lista de instrucciones 155 al procesador VBA 135 para procesar la lista de instrucciones 155 en el código VBA. Una vez que se procesa, el código VBA se envía a la máquina grabadora de macros 140, la cual envía el código VBA a la grabadora VBA 170 en el subsistema VBA 130. En una modalidad ejemplar, la aplicación 117 determina la ubicación apropiada y presente las selecciones al usuario a través de la interfase del usuario 105. El usuario decide entonces la ubicación apropiada basándose en las selecciones que se le proporcionaron. En el paso 361, el constructor 150 elimina la lista de instrucciones 155. La aplicación 117 elimina el constructor 150 en el paso 362. En el paso 365, se conduce una investigación para determinar si el usuario ha realizado otra acción que se pueda grabar en la aplicación 117. Si es así, se sigue la bifurcación "YES" al paso 325 par determinar si se grabará la acción. Si el usuario no realiza otra acción que se pueda grabar, se sigue la bifurcación XNO" al paso 370. En el paso 370, el usuario deja de grabar la macro en la aplicación 117. el usuario puede detener la grabación de la macro por medio de seleccionar "detener grabación de la macro" a partir de un cuadro desplegable en la aplicación 117, que aparece en el monitor de la interfase del usuario 105. La macro está ahora en un código especifico del lenguaje y el usuario lo puede accesar en la aplicación 117. El método 300 termina entonces en el paso END (FIN) . La Figura 4 es un diagrama de gráfica de flujo lógica que ilustra un método implementado por computadora ejemplar para construir una lista de instrucciones 155 en una sintaxis independiente del lenguaje de computadora como se completa en el paso 330 de la Figura 3. Con referencia a las Figuras IB, 3 y 4, el método 330 se inicia con el usuario realizando una acción que se puede grabar en la aplicación 117 en el paso 405. En el paso 410, la aplicación 117 crea un constructor 150 en la máquina grabadora de macros 140. El constructor 150 se crea típicamente para cada acción grabada del usuario en la aplicación 117. Sin embargo, en una modalidad ejemplar alternativa, el constructor 150 se puede reajustar con una lista de instrucciones vacía 155, después de que se procesa una lista de instrucciones previa 155 mediante el procesador 135, eliminando mediante lo mismo la necesidad de crear un constructor nuevo 150 para cada acción del usuario que se grabó. El constructor 150 crea una lista de instrucciones vacia 155, el mapa de variables 165, y el verificador 160 en la máquina grabadora de macros 140 en el paso 415. La lista de instrucciones 155, el mapa de variables 165 y el verificador 160 se crean típicamente para cada acción que se pueda grabar del usuario en la aplicación 117. Sin embargo, en una modalidad ejemplar alternativa, la lista de instrucciones 155, el mapa de variables 165, y el verificador 160 se pueden reajustar y vaciarse la lista de instrucciones 155 después de que se procesa la lista de instrucciones 155 mediante el procesador 135, eliminando mediante lo mismo la necesidad de crear una lista de instrucciones 155, mapa de variables, y verificador 160 nuevos para cada acción del usuario que se grabó. En el paso 420, la aplicación 117 traduce una porción de la acción del usuario que se grabó en una instrucción que tiene una sintaxis independiente del lenguaje de computadora. El constructor 150 agrega información de la instrucción al mapa de variables 165, según se necesite, en el paso 425. La información se agregará al mapa de variables 165 desde el constructor 150 si la información contiene una variable que no se haya usado previamente en una instrucción anterior. En el paso 445, el constructor 150 envía la instrucción al verificador 160. El verificador 160 determina si la instrucción se creó de la manera apropiada en el paso 450. Para determinar si la instrucción se creó de la manera apropiada, el verificador 160 examina el código de la instrucción para verificar la construcción apropiada del código, que incluye una determinación en cuanto a si la instrucciones contiene o no el tipo y el número correctos de operandos o el tipo apropiado de información para ejecutar una llamada . En el paso 455, se conduce una investigación para determinar si el constructor 150 usa el verificador 160 par determinar si la instrucción actual se construyó de manera apropiada con respecto al contenido actual de la lista de instrucciones 155. Si es asi, se sigue la bifurcación "YES" al paso 460, en donde el constructor 150 usa el verificador 160 para determinar si la instrucciones tiene sentido dado el contenido actual de la lista de instrucciones 155. El proceso continúa entonces al paso 470. Si el constructor 150 no usa el verificador 160 para determinar si la instrucción actual se construyó de manera apropiada con respecto al contenido actual de la lista de instrucciones 155, se sigue la bifurcación "NO" al paso 470. En el paso 470, el constructor 150 agrega la instrucción a la lista de instrucciones 155. En el paso 475, se conduce una investigación para determinar si la lista de instrucciones 155 está completa. Si no es asi, se sigue la bifurcación "NO" al paso 420, en donde la aplicación 117 traduce otra porción de las acciones del usuario en instrucciones que tienen una sintaxis independiente del lenguaje de computadora. Si la lista de instrucciones 155 está completa, se sigue la bifurcación "YES" al paso 355 de la Figura 3. La Figura 5 es un diagrama de gráfica de flujo lógica que ilustra un método i plementado por computadora ejemplar para un verificador 160 que determina si se creó una instrucción de la manera apropiada, como se completa mediante el paso 450 de la Figura 4. Con referencia a las Figuras IB, 4 y 5, el método 450 se inicia con el verificador 160 recibiendo una instrucción desde el constructor 150 en el paso 510. En el paso 515, se conduce una investigación para determinar si la instrucción, que recibió el verificador 160, contiene el número y el tipo correctos de operandos . Si no es asi, se sigue la bifurcación "NO" al paso 520, en donde falla la creación de la lista de instrucciones 155 y el proceso termina. Si la instrucción contiene el número y el tipo correctos de operandos, se sigue la bifurcación "YES" al paso 455 de la Figura 4. En conclusión, la presente invención habilita a los usuarios y desarrolladores para crear y emplear macros en una variedad de diferentes lenguajes de programación. Mediante el uso de la sintaxis independiente del lenguaje de OIL, se puede crear una macro en un lenguaje y no se necesita crear de manera separada en otros lenguajes. En lugar de esto, el lenguaje OIL convierte las instrucciones de la macro original en un conjunto de instrucciones neutrales que se pueden convertir en una variedad de diferentes lenguajes. Se apreciará que la presente invención llena las necesidades de la técnica anterior que se describieron en la presente y cumple con los objetivos que se establecieron anteriormente. Aunque se han mostrado y descrito diferentes modalidades ejemplares de la presente invención, será evidente para aquellos expertos en la técnica que se pueden hacer diferentes modificaciones y cambios a la misma, sin apartarse del espíritu y el alcance de la presente invención, como se establece en las reivindicaciones anexas y las equivalencias de las mismas. Por ejemplo, los métodos de la presente invención se podrían aplicar a instrucciones legibles por computadora más allá de aquellas que se describen típicamente como macros.

Claims (26)

REIVINDICACIONES
1. Un método implementado por computadora para grabar instrucciones en una sintaxis independiente del lenguaje de computadora, que comprende los pasos de: aceptar una solicitud para grabar cuando menos una acción en un sistema de computadora; iniciar un sistema de grabación en el sistema de computadora para grabar cuando menos una acción; aceptar cuando menos una acción que se realiza en el sistema de computadora; grabar la cuando menos una acción que se realiza en el sistema de computadora con el sistema para grabar; convertir la cuando menos una acción que se grabó con el sistema para grabar en cuando menos una instrucción que tiene una sintaxis independiente del lenguaje de computadora; convertir la cuando menos una instrucción que tiene una sintaxis independiente del lenguaje de computadora; y convertir la lista de instrucciones que tiene la sintaxis independiente del lenguaje de computadora en uno de una pluralidad de lenguajes de código de origen.
2. El método de la Reivindicación 1, que comprende además ios pasos de: aceptar una solicitud para dejar de grabar; y terminar la grabación por parte del sistema de grabación .
3. El método de la Reivindicación 1, en donde el paso para convertir la cuando menos una instrucción en una lista de instrucciones que tiene una sintaxis independiente del lenguaje de computadora comprende los pasos de: crear una lista de instrucciones; traducir cuando menos una acción que se realiza en el sistema de computadora en una instrucción que tiene una sintaxis independiente del lenguaje de computadora; agregar la instrucción que tiene la sintaxis independiente del lenguaje de computadora en una lista de instrucciones que comprende cuando menos una instrucción que tiene sintaxis independiente del lenguaje de computadora; enviar la lista de instrucciones que comprende cuando menos una instrucción que tiene sintaxis independiente del lenguaje de computadora a cuando menos uno de una pluralidad de procesadores; y procesar la lista de instrucciones que comprende cuando menos una instrucción que tiene sintaxis independiente del lenguaje de computadora en un código de origen especifico del lenguaje en el cuando menos uno de una pluralidad de procesadores .
4. El método de la Reivindicación 3, que comprende además los pasos de: aceptar la instrucción que tiene la sintaxis independiente del lenguaje de computadora dentro de un verificador; permitir que el verificador determine si la instrucción que tiene la sintaxis independiente del lenguaje de computadora se construyó de manera apropiada; consultar si el verificador evalúa la instrucción que tiene la sintaxis independiente del lenguaje de computadora para determinar si la instrucción tiene sentido, basándose en el contenido de la lista de instrucciones; y basándose en una determinación positiva, permitir que el verificador determine si la instrucción que tiene la sintaxis independiente del lenguaje de computadora tiene sentido, basándose en el contenido de la lista de instrucciones .
5. El método de la Reivindicación 3, en donde la lista de instrucciones se crea mediante un constructor que reside en una aplicación de software para cada macro que se graba .
6. El método de la Reivindicación 5, en donde el constructor se crea mediante la aplicación de software para cada 'macro que se graba.
7. El método de la Reivindicación 3, en donde el constructor crea al verificador, el mapa de variables y la lista de instrucciones para cada macro que se va a grabar en la aplicación de software.
8. El método de la Reivindicación 1, en donde un código de origen que se emite en el uno de una pluralidad de lenguajes de código en respuesta a la cuando menos una acción, comprende una macro.
9. El método de la Reivindicación 1, en donde el uno de una pluralidad de lenguajes de código de origen se crea en cuando menos uno de una pluralidad de procesadores .
10. El método de la Reivindicación 9, en donde el cuando menos uno de una pluralidad de procesadores comprende un procesador C Sharp, un procesador C Plus Plus, un procesador VBA, y un procesador VB.Net.
11. El método de la Reivindicación 1, en donde la lista de instrucciones comprende: cuando menos una instrucción que se puede reconocer mediante un procesador y convertirse en el código de origen en un sistema de computadora; y un operando que especifica la información sobre la cual se opera o manipula la instrucción en el sistema de computadora .
12. Un medio legible por computadora que tiene instrucciones ejecutables por computadora para realizar los pasos que se citan en la Reivindicación 1.
13. Un sistema para grabar instrucciones en una sintaxis independiente del lenguaje de computadora que comprende : una interfase del usuario; un servidor que se acopla a la interfase del usuario; una grabadora que se acopla a la base de datos que proporciona un elemento para grabar las acciones que se iniciaron en la interfase del usuario; un constructor para la grabadora, operable para recibir las acciones que se grabaron de la grabadora y generar cuando menos una instrucción que se basa en la acción que se grabó; una lista de instrucciones que se copla al constructor, operable para recibir la cuando menos una instrucción que se genera a partir del constructor; y cuando menos uno de una pluralidad de procesadores que se acoplan al constructor, operable para recibir la lista de instrucciones y generar cuando menos un código de origen.
14. El sistema de la Reivindicación 13, que comprende además : una aplicación de software que se acopla a una base de datos y una pluralidad de bibliotecas de enlace dinámico; un verificador que se acopla al constructor y el cuando menos uno de una pluralidad de procesadores, operable para determinar si la lista de instrucciones se construyó de manera apropiada; un mapa de variables que se acopla al constructor y el cuando menos uno de una pluralidad de procesadores, operable para evaluar la lista de instrucciones por las variables contenidas en las instrucciones.
15. El sistema de la Reivindicación 14, que comprende además un subsistema para recibir el código de origen que se generó y almacenar el código de origen que se generó, hasta que se necesite.
16. El sistema de la Reivindicación 13, en donde el uno de una pluralidad de procesadores comprende un procesador Visual Basic para Aplicaciones.
17. El sistema de la Reivindicación 13, en donde el uno de- una pluralidad de procesadores comprende un procesador C Plus Plus .
18. El sistema de la Reivindicación 13, en donde el uno de una pluralidad de procesadores comprende un procesador C Sharp.
19. El sistema de la Reivindicación 13, en donde el uno de una pluralidad de procesadores comprende un procesador Visual Basic. Net.
20. El sistema de la Reivindicación 13, en donde el constructor se localiza en la aplicación de software.
21. El sistema de la Reivindicación 13, en donde el constructor se acopla a una pluralidad de aplicaciones de software, que puede construir instrucciones en una sintaxis independiente del lenguaje de computadora para la pluralidad de aplicaciones de software.
22. Una lista de instrucciones que comprende instrucciones en una sintaxis independiente del lenguaje de computadora, comprendiendo la lista de instrucciones: cuando menos una instrucción la cual puede reconocer un sistema de computadora o la aplicación de software y actuar sobre ella.
23. La lista de instrucciones de la Reivindicación 22, que comprende además un operando que especifica la información sobre la cual se opera o se manipula la instrucción.
24. La lista de instrucciones de la Reivindicación 22, en donde el operando se selecciona a partir del grupo que consiste de una variable, un método, y una literal .
25. La lista de instrucciones de la Reivindicación 22, en donde cada una de la cuando menos una instrucción tiene un operando con el cual se asocia.
26. Un medio legible por computadora para grabar instrucciones en una sintaxis independiente del lenguaje de computadora, que comprende los pasos de: aceptar una solicitud par grabar cuando menos una acción en un sistema de computadora; iniciar un sistema para grabar en el sistema de computadora para grabar cuando menos una acción; aceptar cuando menos una acción que se realiza en el sistema de computadora; convertir la cuando menos una acción que se realiza en el sistema de computadora en cuando menos una instrucción que tiene una sintaxis independiente del lenguaje de computadora; convertir la cuando menos una instrucción en una lista de instrucciones que tiene una sintaxis independiente del lenguaje de computadora; y convertir la lista de instrucciones que tiene la sintaxis independiente del lenguaje de computadora en uno de una pluralidad de códigos de origen.
MXPA03012019A 2003-01-08 2003-12-19 Metodo y sistema para grabar macros en una sintaxis independiente de lenguaje. MXPA03012019A (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/338,295 US7275240B2 (en) 2003-01-08 2003-01-08 Method and system for recording macros in a language independent syntax

Publications (1)

Publication Number Publication Date
MXPA03012019A true MXPA03012019A (es) 2005-04-11

Family

ID=32655441

Family Applications (1)

Application Number Title Priority Date Filing Date
MXPA03012019A MXPA03012019A (es) 2003-01-08 2003-12-19 Metodo y sistema para grabar macros en una sintaxis independiente de lenguaje.

Country Status (12)

Country Link
US (1) US7275240B2 (es)
KR (1) KR20040063837A (es)
CN (1) CN100350381C (es)
AU (1) AU2004200048A1 (es)
BR (1) BR0305978A (es)
CA (1) CA2454843A1 (es)
MX (1) MXPA03012019A (es)
MY (1) MY137030A (es)
PL (1) PL364276A1 (es)
RU (1) RU2347262C2 (es)
TW (1) TW200419449A (es)
ZA (1) ZA200309903B (es)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050268291A1 (en) * 2004-05-27 2005-12-01 International Business Machines Corporation Specifying user interface interactions for controls in a data driven system
US7627821B2 (en) * 2004-06-15 2009-12-01 Microsoft Corporation Recording/playback tools for UI-based applications
US7653896B2 (en) * 2004-06-30 2010-01-26 Microsoft Corporation Smart UI recording and playback framework
US7478367B2 (en) * 2005-01-11 2009-01-13 International Business Machines Corporation Dynamic source code analyzer
US20080091409A1 (en) * 2006-10-16 2008-04-17 Microsoft Corporation Customizable mathematic expression parser and evaluator
US20080147453A1 (en) * 2006-12-19 2008-06-19 Kogan Sandra L System and method for end users to create a workflow from unstructured work
US8281234B2 (en) * 2007-03-20 2012-10-02 Microsoft Corporation Definable application assistant
US20090138846A1 (en) * 2007-11-23 2009-05-28 Microsoft Corporation Extended macro recording
US8397207B2 (en) * 2007-11-26 2013-03-12 Microsoft Corporation Logical structure design surface
US20090265719A1 (en) * 2008-04-18 2009-10-22 Microsoft Corporation Application macro recording utilizing method interception
US8869028B2 (en) * 2009-05-18 2014-10-21 Xerox Corporation Interface structures and associated method for automated mining of legacy systems using visual configuration tools
US8826304B2 (en) * 2009-08-13 2014-09-02 Google Inc. Virtual object indirection in a hosted computer environment
US8271461B2 (en) * 2010-01-18 2012-09-18 Battelle Memorial Institute Storing and managing information artifacts collected by information analysts using a computing device
US9081626B2 (en) * 2010-05-03 2015-07-14 Renesas Electronics America Inc. Method and apparatus for converting software
KR102004986B1 (ko) * 2012-09-17 2019-07-29 삼성전자주식회사 어플리케이션 실행 방법 및 시스템, 단말과 그 기록 매체
RU2546058C1 (ru) * 2013-11-11 2015-04-10 Сергей Михайлович Назаров Способ формирования реляционного описания синтаксиса команды
CN104571575A (zh) * 2013-10-25 2015-04-29 技嘉科技股份有限公司 具有宏录制功能的输入装置、具有宏录制功能的输入系统及宏录制方法
US10664404B2 (en) * 2016-02-04 2020-05-26 Sap Se User interface state transitions
US10140105B2 (en) * 2016-03-10 2018-11-27 Wowza Media Systems, LLC Converting source code
RU2697796C1 (ru) * 2018-11-26 2019-08-20 Общество с ограниченной ответственностью "АЙХАЙ" Логический конструктор макросов
US11144338B2 (en) * 2019-08-20 2021-10-12 Hyland Software, Inc. Computing system for macro generation, modification, verification, and execution
US11204789B2 (en) 2019-08-20 2021-12-21 Hyland Software Inc. Graphical user interface for macro generation, modification, and verification
CN112541033B (zh) * 2020-12-01 2023-05-05 山东师范大学 Vba栈结构的演示方法、系统、存储介质及计算机设备
CN117151061B (zh) * 2023-10-30 2024-02-02 建信金融科技有限责任公司 宏开启提示的过滤方法、装置、设备及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5822587A (en) 1995-10-20 1998-10-13 Design Intelligence, Inc. Method and system for implementing software objects
US5903859A (en) * 1996-03-27 1999-05-11 Dell Usa, L.P. Dynamic multi-lingual software module system
US6105043A (en) 1997-12-16 2000-08-15 International Business Machines Corporation Creating macro language files for executing structured query language (SQL) queries in a relational database via a network
US6389590B1 (en) 1999-06-22 2002-05-14 Microsoft Corporation Indefinite-size variables within an intermediate language
US6481008B1 (en) 1999-06-30 2002-11-12 Microsoft Corporation Instrumentation and optimization tools for heterogeneous programs
US6405365B1 (en) * 1999-07-02 2002-06-11 Cisco Technology, Inc. Computer program command generator and parser
EP1183598A2 (en) * 1999-09-21 2002-03-06 Koninklijke Philips Electronics N.V. Optimized bytecode interpreter of virtual machine instructions
US6697754B1 (en) * 2000-08-09 2004-02-24 Agilent Technologies, Inc. Generation and execution of instrument control macro files for controlling a signal measurement system
US20030018719A1 (en) * 2000-12-27 2003-01-23 Ruths Derek Augustus Samuel Data-centric collaborative computing platform
US20040015843A1 (en) * 2001-05-15 2004-01-22 International Business Machines Corporation Method and program product for structured comment assists in computer programming

Also Published As

Publication number Publication date
US20040133878A1 (en) 2004-07-08
CN1519710A (zh) 2004-08-11
RU2004100525A (ru) 2005-06-20
PL364276A1 (en) 2004-07-12
CA2454843A1 (en) 2004-07-08
KR20040063837A (ko) 2004-07-14
US7275240B2 (en) 2007-09-25
MY137030A (en) 2008-12-31
BR0305978A (pt) 2005-05-17
AU2004200048A1 (en) 2004-07-29
RU2347262C2 (ru) 2009-02-20
TW200419449A (en) 2004-10-01
CN100350381C (zh) 2007-11-21
ZA200309903B (en) 2005-02-23

Similar Documents

Publication Publication Date Title
US7275240B2 (en) Method and system for recording macros in a language independent syntax
JP4366065B2 (ja) リソース・ファイル・ビルダ・ツール及びコンピュータ可読コード
US7398474B2 (en) Method and system for a digital device menu editor
US10198425B2 (en) Methods and apparatus for reusing report design components and templates
US6112304A (en) Distributed computing architecture
US5784583A (en) Intuitive technique for building graphical menus
CN1867911B (zh) 用于文件转换的系统和方法
CN100592256C (zh) 无缝地比较对象的系统和方法
US7676787B2 (en) Component based design time architecture
JPH11509654A (ja) アプリケーションプログラムにおけるビフェイビアの自動的実施
SE525833C2 (sv) Förfarande och system för att i en PowerPoint bildspels- presentation infoga visning av ett dynamiskt förhållande
US20020083216A1 (en) Multi-platform command line interpretation
US6874148B1 (en) System and method for exporting a graphical program to a shared library
US7669178B2 (en) System and method for interacting with computer programming languages at semantic level
JP2004118842A (ja) オリジナルモデリング環境外の強化された動的システムシミュレーション能力を提供する方法
CN113377497A (zh) 一种基于服务虚拟化的服务开发系统
EP1437647B1 (en) Method and system for recording macros in a language independent syntax
CN114911541A (zh) 配置信息的处理方法、装置、电子设备及存储介质
Atkinson Persistent foundations for scalable multi-paradigmal systems
JP2004213529A (ja) 言語非依存の構文でマクロを記録する方法およびシステム
Shunkevich Universal model of interpreting logical-semantic models of intelligent computer systems of a new generation
Ambriola et al. Reasoning about interactive system
Bird et al. A practical approach to software engineering by using an interaction handler and skeleton code generator
Oepen et al. The tsnlp Database
Kotsalis " Managing non-native widgets in model-based User Interface engineering