Programación y ejecución orientadas por gráficos de productor.

Un método para ejecutar un código orientado a objetos, comprendiendo dicho método:

recibir una indicación de un productor de interés

, donde un productor es una construcción de entorno de ejecución de una instancia que identifica una instancia determinada y un método determinado asociado con esa instancia;

generar y ejecutar automáticamente un grafo de productores que tiene una pluralidad de productores, incluyendo dicha generación y ejecución automática:

instanciar el productor de interés como un nodo del grafo de productores;

realizar iterativamente lo siguiente:

interpretar una declaración de dependencias del productor, en el código orientado a objetos, para el método identificado por uno de los productores ya en el grafo de productores, y

crear instancias según sea necesario y añadir a dichos grafos de productores un conjunto de cero o más productores identificados por dicha interpretación de esa declaración de dependencias del productor; y

ejecutar productores en el grafo de productores secuenciado como se indica por el grafo de productores, donde la ejecución de cada productor resulta en el método particular identificado por el productor que se ejecuta en la instancia particular identificada por el productor.

Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E11167913.

Solicitante: MUREX S.A.S.

Nacionalidad solicitante: Francia.

Dirección: 8 RUE BELLINI 75116 PARIS FRANCIA.

Inventor/es: CHAMIEH,FADY, EDDE,ELIAS.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Disposiciones para el control por programa, p. ej.... > G06F9/44 (Disposiciones para ejecutar programas específicos)

PDF original: ES-2471394_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

Programaciïn y ejecuciïn orientadas por grïficos de productor

Antecedentes Campo

Realizaciones de la invenciïn se refieren al campo de los ordenadores, y mïs especïficamente, al campo de la programaciïn y la ejecuciïn de cïdigo con un entorno de ejecuciïn.

Antecedentes Programaciïn orientada a objetos La programaciïn orientada a objetos es un paradigma de programaciïn de ordenadores. La idea detrïs de la programaciïn orientada a objetos es que un programa de ordenador pueda ser visto como que comprende una colecciïn de unidades individuales (llamados objetos o instancias) que actïan entre sï, en oposiciïn a un punto de vista tradicional en el cual un programa puede ser visto como una colecciïn de funciones, o simplemente como una lista de instrucciones al ordenador. Un objeto es un mecanismo de lenguaje para el enlace de datos con los mïtodos que operan sobre esos datos. Cada objeto es capaz de ser llamado a travïs de mïtodos, datos de procesamiento, y proporcionar resultados con otros objetos. Cada objeto puede ser visto como una mïquina independiente o un actor con un papel o responsabilidad distinta.

Un lenguaje reflexivo orientado a objetos es un lenguaje de programaciïn que tiene un conjunto particular de caracterïsticas (por ejemplo, clases, objetos/instancias, herencia, reflexiïn, etc.) , mientras que un lenguaje reflexivo basado en objetos a veces se utiliza para etiquetar un lenguaje de programaciïn que tiene algïn subconjunto de esas caracterïsticas (por ejemplo, objetos) . Para los propïsitos de este documento, las frases "cïdigo fuente orientado a objetos" y "cïdigo orientado a objetos" se utilizan para referirse al cïdigo escrito en un lenguaje que tiene estas caracterïsticas (por ejemplo, cïdigo escrito en un lenguaje reflexivo orientado a objetos, cïdigo escrito en un lenguaje reflexivo basado en objetos) . Si bien los lenguajes del mïtodo, lenguajes no reflexivos orientados a objetos, y lenguajes no reflexivos basados en objetos son lenguajes de programaciïn que normalmente no soportan estas caracterïsticas, se pueden utilizar tïcnicas de transformaciïn para proporcionar estas caracterïsticas (por ejemplo, a travïs de la emulaciïn) para codificar escritas correctamente en los dos lenguajes, y por lo tanto, estas tïcnicas transforman estos lenguajes en un lenguaje reflexivo basado en objetos o en un lenguaje reflexivo orientado a objetos. (Estas tïcnicas no necesitan emular todas las caracterïsticas de los lenguajes orientados a o basados en objetos, sino que sïlo pueden emular las caracterïsticas que sean de interïs para el resto de este documento) . Para los propïsitos de este documento, las frases "cïdigo fuente orientado a objetos" y "cïdigo orientado a objetos" tambiïn se utilizan para referirse a este mïtodo transformado, de cïdigo de lenguaje no reflexivo orientado a objetos, y no reflexivo basado en objetos. A modo de ejemplo, y no de limitaciïn, este documento describe principalmente un cïdigo fuente orientado a objetos escrito en un lenguaje reflexivo orientado a objetos. Ademïs, los tïrminos objeto y ejemplo se utilizan indistintamente en este documento.

Utilizado principalmente en programaciïn orientada a objetos, el tïrmino mïtodo se refiere a un trozo de cïdigo que estï exclusivamente asociado, ya sea con una clase (llamados mïtodos de clase, mïtodos estïticos o mïtodos de 45 fïbrica) o con un objeto (llamado mïtodos de instancia) . Al igual que un mïtodo en lenguajes de programaciïn de mïtodo, un mïtodo usualmente consiste en una secuencia de instrucciones para realizar una acciïn, un conjunto de parïmetros de entrada para parametrizar las acciones, y, posiblemente, un valor de salida de algïn tipo que se devuelve.

Cuando los programadores escriben un programa utilizando un lenguaje orientado a objetos, el cïdigo resultante puede ser visto conceptualmente como que incluye cuatro tipos bïsicos de cïdigo. El primer tipo incluye comandos que operan en instancia (s) de entrada para proporcionar instancia (s) de salida (referidos aquï como cïdigo de "transformaciïn") ; tïpicamente escrito como mïtodos (referidos aquï como mïtodos de "transformaciïn") . El segundo tipo incluye comandos de instanciaciïn de instancias que hacen que el entorno de ejecuciïn cree instancias de 55 clases (indicados aquï como cïdigo de "instanciaciïn de instancias") . El tercer tipo incluye comandos de manipulaciïn de la propiedad (indicados aquï como cïdigo de "preparaciïn de datos") para invocar mïtodos de acceso de propiedad, mutaciones, etc.) de las instancias anteriores. El cuarto tipo incluye secuencias de comandos que causan que la secuenciaciïn de invocaciïn del mïtodo usando las instancias correspondientes (cuando las instancias apropiadas incluyen las instancias para utilizar como argumentos, las instancias son utilizadas por los 60 mïtodos de instancia y las instancias de clases meta utilizadas por los mïtodos de clase) para especificar quï mïtodos de transformaciïn de quï instancias que invocan, en quï orden, y con quï parïmetros de quï instancias responden a los cambios introducidos por el cïdigo de preparaciïn de datos (indicados aquï como cïdigo "de secuenciaciïn de invocaciïn manual") . El cïdigo de secuenciaciïn de invocaciïn manual se escribe a veces como mïtodos separados de los mïtodos de transformaciïn, y por lo tanto, la invocaciïn manual del cïdigo de 65 secuenciaciïn incluye secuencias de comandos de invocaciïn de mïtodos de transformaciïn. Un programa tïpicamente itera entre el cïdigo de preparaciïn de datos y cïdigo de secuenciaciïn de invocaciïn manual (que tambiïn puede sumergirse en el cïdigo de instanciaciïn de instancias) , que a su vez invoca el cïdigo de transformaciïn (que tambiïn puede sumergirse en el cïdigo de instanciaciïn de instancias y los tipos de cïdigo de preparaciïn de datos) . Cabe seïalar que esta es una representaciïn conceptual de un programa, y por lo tanto, no debe ser tomada como una absoluta respecto a cïmo ver un programa.

Entorno de ejecuciïn El entorno de ejecuciïn tïrmino se utiliza aquï para referirse a un programa o una librerïa de cïdigo bïsico que se ejecuta otro cïdigo escrito en el mismo y/o un lenguaje diferente. Por lo tanto, un entorno de ejecuciïn es una colecciïn de funciones de utilidad que apoyan un programa mientras se estï ejecutando, incluyendo el trabajo con el sistema operativo para proporcionar servicios tales como funciones matemïticas, de entrada y de salida. Esto hace que sea innecesario para los programadores que reescribir continuamente las capacidades bïsicas especificadas en un lenguaje de programaciïn o proporcionada por un sistema operativo. Puesto que la demarcaciïn entre un entorno de ejecuciïn y un sistema operativo puede ser borrosa, el entorno de ejecuciïn tïrmino se utiliza aquï para referirse a cïdigo separado del sistema operativo y/o cïdigo que forma parte del sistema operativo.

Los tiempos de ejecuciïn iniciales, como el de FORTRAN, ofrecen caracterïsticas tales como operaciones matemïticas. Otros lenguajes aïaden caracterïsticas mïs sofisticadas, por ejemplo, recogida de restos de memoria, a menudo en asociaciïn con soporte para objetos. Lenguajes mïs recientes tienden a tener tiempos de ejecuciïn considerablemente mïs grandes con mïs funcionalidades. Muchos lenguajes orientados a objetos tambiïn incluyen un sistema conocido como "despachador" y "cargador de clases". La Mïquina Virtual de Java (JVM) es un ejemplo de este entorno de ejecuciïn: tambiïn interpreta o compila los programas de Java portïtiles binarios (byte-cïdigo) en el entorno de ejecuciïn. El marco de entorno de ejecuciïn de lenguaje comïn (CLR) es otro ejemplo de un entorno de ejecuciïn.

Marco de programaciïn y ejecuciïn... [Seguir leyendo]

 


Reivindicaciones:

1. Un mïtodo para ejecutar un cïdigo orientado a objetos, comprendiendo dicho mïtodo:

recibir una indicaciïn de un productor de interïs, donde un productor es una construcciïn de entorno de ejecuciïn de una instancia que identifica una instancia determinada y un mïtodo determinado asociado con esa instancia;

generar y ejecutar automïticamente un grafo de productores que tiene una pluralidad de productores, incluyendo dicha generaciïn y ejecuciïn automïtica:

instanciar el productor de interïs como un nodo del grafo de productores; realizar iterativamente lo siguiente:

interpretar una declaraciïn de dependencias del productor, en el cïdigo orientado a objetos, para el mïtodo identificado por uno de los productores ya en el grafo de productores, y crear instancias segïn sea necesario y aïadir a dichos grafos de productores un conjunto de cero o mïs productores identificados por dicha interpretaciïn de esa declaraciïn de dependencias del productor; y

ejecutar productores en el grafo de productores secuenciado como se indica por el grafo de productores, donde la ejecuciïn de cada productor resulta en el mïtodo particular identificado por el productor que se ejecuta en la instancia particular identificada por el productor.

2. El mïtodo de la reivindicaciïn 1, donde una raïz del grafo de productores es el productor de interïs, y donde un productor aïadido al grafo de productores es un productor para el que la salida de la ejecuciïn de ese productor es consumida por un productor que es un padre de ese productor en ese grafo de productores.

3. El mïtodo de cualquiera de las reivindicaciones 1-2, donde:

dicha declaraciïn de dependencias del productor para el mïtodo identificado por uno de los productores que ya estïn en los grafos de productores identifica en el entorno de ejecuciïn una dependencia del productor entre el uno de los productores que ya estïn en el grafo de productores y el conjunto de cero o mïs productores; dicha etapa de adiciïn incluye vincular el uno de los productores ya en el grafo de productores y el conjunto de productores, como se indica por la dependencia del productor.

4. El mïtodo de cualquiera de las reivindicaciones 1-3, donde dicha generaciïn y ejecuciïn automïtica incluye ademïs: iterar entre dicha realizaciïn iterativa y dicha ejecuciïn de los productores del grafo de productores hasta que se genera todo el grafo de productores y se ejecuta.

5. El mïtodo de cualquiera de las reivindicaciones 1 a 4, donde al menos una de las declaraciones de dependencias del productor identifica una dependencia del productor que es una dependencia dinïmica del productor, y donde la interpretaciïn incluye para esa declaraciïn de dependencias del productor.:

resolver la dependencia dinïmica del productor para identificar el conjunto de cero o mïs productores, donde una dependencia dinïmica del productor puede ser resuelta de manera diferente en diferentes ejecuciones de los grafos de productores, de tal manera que un conjunto diferente de cero o mïs productores son identificados por dicha interpretaciïn de ese grafo de la declaraciïn de dependencia del productor.

6. El mïtodo de cualquiera de las reivindicaciones 1 a 5, donde cada uno de los mïtodos identificados por uno de los productores ya en el grafo de productores se expresa en una definiciïn de clase, donde cada una de las declaraciones de dependencias del productor se expresa en la misma definiciïn de clase como su mïtodo.

7. El mïtodo de la reivindicaciïn 6, donde cada una de las declaraciones de dependencias del productor incluye un cïdigo de declaraciïn de dependencia del productor colocado directamente debajo de una instrucciïn de declaraciïn de dependencias del productor y se trata por el entorno de ejecuciïn como una sola unidad.

8. El mïtodo de cualquiera de las reivindicaciones 1 a 5, donde dicha etapa de interpretaciïn incluye por lo menos una de las iteraciones:

ejecutar el cïdigo de declaraciïn de dependencia del productor para identificar el conjunto de cero o mïs productores.

9. El mïtodo de la reivindicaciïn 8, donde cada uno de los mïtodos identificados por uno de los productores ya en el grafo de productores se expresa en una definiciïn de clase, donde el cïdigo de declaraciïn de dependencias del productor se expresa en la misma definiciïn de clase como la instancia particular, identificada por el uno de los productores que ya estïn en el grafo de productores.

10. El mïtodo de cualquiera de las reivindicaciones 8 a 9, donde el cïdigo de declaraciïn de dependencias del productor es parte de un mïtodo.

11. El mïtodo de cualquiera de las reivindicaciones 8 a 9, donde el cïdigo de declaraciïn de dependencias del productor es parte de un mïtodo que no es parte de un productor.

12. El mïtodo de cualquiera de las reivindicaciones 8 a 9, donde la interpretaciïn incluye el descubrimiento de un productor que identifica como su mïtodo particular un mïtodo que incluye el cïdigo de declaraciïn de dependencias del productor, y donde la ejecuciïn del cïdigo de declaraciïn de dependencias del productor descubierto incluye la ejecuciïn del productor descubierto.

13. El mïtodo de la reivindicaciïn 12, donde el productor descubierto no crea una instancia o se aïade al grafo de productores.

14. El mïtodo de cualquiera de las reivindicaciones 1 a 7, donde el grafo de productores es un subgrafo de destino de un grafo de productores mïs grande, incluyendo el grafo de productores mïs grande una pluralidad de subgrafos de decisiïn, la ejecuciïn de los cuales ayuda en el descubrimiento, la resoluciïn y la construcciïn del subgrafo de destino.

15. El mïtodo de cualquiera de las reivindicaciones 1 a 7, donde el grafo de productores es un subgrafo de destino de un grafo de productores mïs grande, y donde dicha etapa de interpretaciïn comprende:

el descubrimiento de un subgrafo de decisiïn que incluye al menos un productor, donde la ejecuciïn del subgrafo de decisiïn identifica el conjunto de los productores.

16. El mïtodo de cualquiera de las reivindicaciones 14 y 15, donde al menos uno de los subgrafos de decisiïn incluye sïlo un productor.

17. El mïtodo de cualquiera de las reivindicaciones 14 y 15, donde al menos uno de los subgrafos de decisiïn incluye mïs de un productor.

18. El mïtodo de cualquiera de las reivindicaciones 14 a 17, donde al menos un productor es parte del subgrafo de destino y de uno de los subgrafos de decisiïn.

19. El mïtodo de cualquiera de las reivindicaciones 14 a 18, donde un primero de los subgrafos de decisiïn incluye una raïz que es un productor de la ejecuciïn que emite una dependencia del productor e incluye nodos, por lo menos algunos de los cuales son productores normalizados, donde un productor normalizado en un subgrafo de decisiïn es un productor para el que la salida, en su caso, de la ejecuciïn de ese productor estïndar se utiliza por un productor que es un padre de ese productor estïndar en ese subgrafo de decisiïn.

20. El mïtodo de cualquiera de las reivindicaciones 1 a 7, donde:

el grafo de productores es un subgrafo de destino de un grafo de productores mïs grande; al menos una de las iteraciones tiene:

dicha etapa de interpretaciïn incluyendo la generaciïn y la ejecuciïn de un subgrafo de decisiïn mediante:

la creaciïn de instancias que sean necesarias de un productor como un nodo raïz del subgrafo de decisiïn; realizar de forma iterativa lo siguiente, interpretar la declaraciïn de dependencias del productor del mïtodo identificado por uno de los productores ya en el subgrafo de decisiïn, y crear instancias segïn sea necesario y aïadir a dicho subgrafo de decisiïn un conjunto de cero o mïs productores identificados por dicha interpretaciïn de esa declaraciïn de dependencias del productor; ejecutar los productores en el subgrafo de decisiïn secuenciado segïn lo indicado por el subgrafo de decisiïn, en el que ejecuciïn del nodo raïz del subgrafo de decisiïn identifica el conjunto de los productores a aïadir al subgrafo de destino.

21. El mïtodo de cualquiera de las reivindicaciones 1 a 20, donde al menos una de las declaraciones de dependencias del productor identifica una dependencia del productor de suscripciïn con criterios de suscripciïn (1410) , donde los productores que cumplen los criterios de suscripciïn son productores de disparo, donde la dependencia del productor de suscripciïn dependencias identifica las dependencias del productor sobre los productores de disparo.

22. El mïtodo de la reivindicaciïn 21, donde la dependencia del productor de suscripciïn es una dependencia del productor de suscripciïn absorbente que indica los criterios de suscripciïn absorbente para productores de disparo,

donde la dependencia del productor de suscripciïn absorbente hace que uno de los productores tenga dependencias del productor en cualesquiera productores de disparo.

23. El mïtodo de la reivindicaciïn 21, donde la dependencia del productor de suscripciïn es una dependencia del productor de suscripciïn adherente que indica el criterio de suscripciïn adherente para los productores de disparo y las caracterïsticas de suscripciïn adherente para un productor padre a crear, donde las causas de dependencias del productor de suscripciïn adherente, para cada uno de los productores de disparo (1475) situado, satisfaciendo un productor padre (1480) las caracterïsticas de suscripciïn adherente para tener una dependencia del productor de ese productor de disparo.

24. El mïtodo de cualquiera de las reivindicaciones 1 a 23, donde al menos algunas de las declaraciones de dependencias del productor incluyen declaraciones de dependencias del productor que identifican una dependencia de argumentos, donde las dependencias de argumentos causan la asignaciïn de las salidas de productores hijo como parïmetros de entrada a los productores padre.

25. El mïtodo de cualquiera de las reivindicaciones 1 a 24, donde las claves del mïtodo se utilizan para distinguir los mïtodos, las claves de instancia se utilizan para distinguir las instancias, y las claves de productores se utilizan para distinguir los productores, donde la clave del productor para cada uno de los productores estï basada en al menos la clave de instancia y la clave del mïtodo de la instancia y del mïtodo identificado por ese productor.

26. El mïtodo de la reivindicaciïn 25, donde las instancias son instancias de una pluralidad de clases, donde las claves de clase se utilizan para distinguir dicha pluralidad de clases, y donde la clave de productores para cada uno de los productores tambiïn se basa en la clave de clase de la instancia identificada por ese productor.

27. El mïtodo de cualquiera de las reivindicaciones 25 a 26, donde la clave de instancia de al menos algunos de los productores contiene una referencia a la instancia identificada por ese productor.

28. El mïtodo de la reivindicaciïn 25, donde dicha creaciïn de instancias de un productor incluye una instancia como es necesaria para la instancia particular identificada por ese productor, donde la instancia particular crea una instancia, y se almacena, de acuerdo con la clave de instancia.

29. El mïtodo de cualquiera de las reivindicaciones 1-28, donde el grafo de productores se cruza con un segundo grafo de productores existente que hace un subconjunto del grafo de productores.

30. El mïtodo de cualquiera de las reivindicaciones 1-28, donde dicha generaciïn y ejecuciïn automïtica comprende ademïs enlazar un nodo del grafo de productores con un nodo de un segundo grafo de productores existente.

31. El mïtodo de cualquiera de las reivindicaciones 1-28, donde, durante al menos una de dichas iteraciones, dicha etapa de aïadir dicho grafo de productores incluye la vinculaciïn de un productor del grafo de productores para un productor existente de un segundo grafo de productores existente.

32. El mïtodo de cualquiera de las reivindicaciones 1 a 31, que comprende ademïs.:

mostrar grïficamente salidas desde y que permiten la interacciïn con el grafo de productores.

33. El mïtodo de cualquiera de las reivindicaciones 1 a 32, donde cada productor crea una instancia de una respectiva combinaciïn de la instancia particular, que es de una clase, y el mïtodo particular, que es de esa clase, identificado por ese productor.

34. Un aparato para la ejecuciïn de cïdigo orientado a objetos, comprendiendo dicho aparato:

un entorno de ejecuciïn para generar y ejecutar automïticamente un grafo de productores con base en un productor de declaraciones de dependencias del productor de interïs y en el cïdigo orientado a objetos para mïtodos en el cïdigo orientado a objetos, donde un productor es una construcciïn de entorno de ejecuciïn de una instancia que identifica una instancia determinada y un mïtodo determinado asociado con esa instancia, incluyendo dicho entorno de ejecuciïn los siguientes mïdulos iterativos relacionados, un mïdulo de generaciïn automatizada de grafos de productores para recibir una designaciïn de dicho productor de interïs, para aïadir dicho productor de interïs a dicho grafo de productores, y generar automïticamente los demïs productores de dicho grafo de productores sobre la base de las declaraciones de dependencias del productor de los mïtodos identificados por los productores actualmente en el grafo de productores, y un mïdulo de ejecuciïn de grafos de productores para ejecutar los productores en el grafo de productores, donde la ejecuciïn de cada uno de los productores resulta en el mïtodo identificado por el productor que se estï ejecutando en la instancia identificada por el productor.

35. El aparato de la reivindicaciïn 34, donde el aparato estï dispuesto para realizar el mïtodo de una cualquiera de

las reivindicaciones 2 a 33.

36. Un programa de ordenador que, cuando es ejecutado por un procesador, hace que el procesador realice un mïtodo de acuerdo con una cualquiera de las reivindicaciones 1 a 33.