Salidas de sustitución en un sistema de programación y ejecución orientado por grafos de productor.
Un sistema para la sustitución de salidas, comprendiendo el sistema:
un procesador;
un medio de almacenamiento de máquina, acoplado al procesador, que tiene almacenado en el mismo un código orientado a objetos que incluye código de cliente que tiene comandos a ejecutar mediante el procesador, incluyendo dicho código de cliente,
un comando de instanciación de productor que tiene una clave de productor para un productor de interés y que causa un entorno de ejecución de código orientado a objetos para automáticamente, en base a las declaraciones de dependencia del productor, descubrir, construir, y, opcionalmente, resolver un grafo de productores a partir del productor de interés, donde cada uno de los productores en el grafo de productores es una construcción instanciada de entorno de ejecución, donde cada productor se instancia a partir de la respectiva combinación de una instancia particular de una clase y un método particular de esa clase e identifica dicha instancia particular y dicho método particular, donde el método identificado por cada productor tiene asociada con el mismo una declaración de dependencias del productor que identifica el entorno de ejecución de un conjunto de cero o más productores, donde el entorno de ejecución instancia automáticamente alguno de los productores del grafo de productores que aún no se ha instanciado, donde las claves de productores se utilizan para distinguir los productores, donde las claves de método se utilizan para distinguir los métodos, donde las claves de instancias se utilizan para distinguir las instancias, y donde la clave de productor para cada uno de los productores se basa en al menos la clave de instancia y la clave del método de la instancia y del método identificado por ese productor; ejecutar comandos, haciendo cada uno que el entorno de ejecución para el código orientado a objetos ejecute el grafo de productores y guarde en caché una salida actual para cada uno de los productores ejecutados en el grafo de productores; y
ejecutar comandos de sustitución de salidas del productor, que cada uno tiene una clave de productor y un valor de sustitución y cada uno hace que el entorno de ejecución para el código orientado a objetos sustituya la salida del productor designada por la clave de productor con el valor de sustitución.
Tipo: Patente Europea. Resumen de patente/invención. Número de Solicitud: E11167918.
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:
- G06F9/44 FISICA. › G06 CALCULO; CONTEO. › G06F PROCESAMIENTO ELECTRICO DE DATOS DIGITALES (sistemas de computadores basados en modelos de cálculo específicos G06N). › G06F 9/00 Disposiciones para el control por programa, p. ej. unidades de control (control por programa para dispositivos periféricos G06F 13/10). › Disposiciones para ejecutar programas específicos.
PDF original: ES-2497573_T3.pdf
Ver la galería de la patente con 12 ilustraciones.
Fragmento de la descripción:
Salidas de sustitución en un sistema de programación y ejecución orientado por grafos de productor Antecedentes Realizaciones de la invención se refieren al campo de los ordenadores, y más espec1ficamente, al campo de la programación y la ejecución de código con un entomo 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 caracteristicas (por ejemplo, objetos) . Para los propósitos de este documento, las frases "CÓdigo fuente orientado a objetos~ y Hcó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 nonnalmente 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 caracteristicas de los lenguajes orientados a o basados en objetos, sino que sólo pueden emular las caracteristicas 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 transfonnado, 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ód igo. El primer tipo incluye comandos que operan en instancia (s) de entrada para proporcionar instancia (s) de salida (referidos aquí como código de "transfonnación") ; tipicamente 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 ciases 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 aqui para referirse a un programa o una libreria de código básico que se ejecuta otro código escrito en el mismo y/o un lenguaje diferente. Por lo tanto, un entomo 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 aqui 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 caracteristicas tales como operaciones matemáticas. Otros lenguajes añaden caracteristicas más sofisticadas, por ejemplo, recogida de restos de memoria, 20 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 Un marco en el que las aplicaciones se proporcionan a los usuarios finales incluye tres divisiones básicas. La primera división incluye la creación del sistema operativo y el entorno de ejecución. Esta primera división se lleva a cabo por los programadores con conocimientos de programación muy avanzados. Cuando se trabaja en esta división, los programadores son llamados, respectivamente, programadores del sistema operativo y programadores del entorno de ejecución. Cuando se crea un entomo de ejecución para un lenguaje orientado a objetos, los programadores de entorno de ejecución incluyen el soporte para la ejecución de los distintos tipos de comandos que se utilizan en el código de transformación, el código de instanciación de instancias, el código de preparación de datos, y el código de secuencia manual de invocación (por ejemplo, comandos de instanciación de instancias, comandos de preparación de datos y comandos de invocación del método) .
... [Seguir leyendo]
Reivindicaciones:
Un sistema para la sustitución de salidas, comprendiendo el sistema:
un procesador; un medio de almacenamiento de máquina, acoplado al procesador, que tiene almacenado en el mismo un CÓdigo orientado a objetos que incluye CÓdigo de cliente que tiene comandos a ejecutar mediante el procesador, incluyendo dicho código de cliente,
un comando de instanciación de productor que tiene una clave de productor para un productor de interés y que causa un entorno de ejecución de código orientado a objetos para automáticamente, en base a las declaraciones de dependencia del productor, descubrir, construir, y, opcionalmente, resolver un grafo de productores a partir del productor de interés, donde cada uno de los productores en el grafo de productores es una construcción instanciada de entorno de ejecución, donde cada productor se instancia a partir de la respectiva combinación de una instancia particular de una clase y un método particular de esa clase e identifica dicha instancia particular y dicho método particular, donde el método identificado por cada productor tiene asociada con el mismo una declaraciÓn de dependencias del productor que identifica el entorno de ejecución de un conjunto de cero o más productores, donde el entorno de ejecución instancia automáticamente alguno de los productores del grafo de productores que aun no se ha instanciado, donde las claves de productores se utilizan para distinguir los productores, donde las claves de método se utilizan para distinguir los métodos, donde las claves de instancias se utilizan para distinguir las instancias, y donde la clave de productor para cada uno de los productores se basa en al menos la clave de instancia y la clave del método de la instancia y del método identificado por ese productor; ejecutar comandos, haciendo cada uno que el entorno de ejecución para el CÓdigo orientado a objetos ejecute el grafo de productores y guarde en caché una salida actual para cada uno de los productores ejecutados en el grafo de productores; y ejecutar comandos de sustitución de salidas del productor, que cada uno tiene una clave de productor y un valor de sustituciÓn y cada uno hace que el entorno de ejecución para el código orientado a objetos sustituya la salida del productor designada por la clave de productor con el valor de sustitución.
2. El sistema de la reivindicación 1, donde el CÓdigo de cliente también incluye:
comandos de sustitución de la salida del productor, que cada uno tiene uno la clave de productor de los productores que han sido sustituidos y que cada uno hace que el entorno de ejecuciÓn para el código orientado a objetos sustituya a la salida sustituida de ese productor.
3. El sistema de cualquiera de las reivindicaciones 1 a 2, donde la causa del comando de instanciaciÓn del productor y los comandos de sustitución de las salidas del productor es indirecta a través del uso de un registro de comandos guardado por el entorno de ejecución para el código orientado a objetos.
4. El sistema de cualquiera de las reivindicaciones 1 a 3, donde el primero de los comandos de ejecución provoca una ejecución inicial y cada uno posterior de los comandos de ejecución provoca una ejecución incremental.
5. El sistema de cualquiera de las reivindicaciones 1 a 4, donde el código de cliente también incluye:
un comando de instanciación de instancias que tiene la clave de instancia del productor de interés yeso hace que el entorno de ejecución de código orientado a objetos instancie la instancia identificada por el productor de interés.
6. El sistema de cualquiera de las reivindicaciones 1 a 5, donde un conjunto de uno o más de los comandos de sustituciÓn de salidas del productor es seguido por uno de los comandos que se ejecutan dicho código de cliente.
7. El sistema de cualquiera de las reivindicaciones 1 a 6, donde claves de clase se utilizan para distinguir una pluralidad de clases, cuyas instancias son instancias, y donde la clave de productor para cada uno de los productores también se basa en la clave de clase de la clase de la instancia identificada por ese productor.
8. El sistema de la reivindicación 7, donde el comando de instanciación del productor hace que el entorno de ejecución para código orientado a objetos para instanciar el productor de interés accediendo a la clase de la instancia identificada por el productor de interés a través de una estructura de seguimiento de clase utilizando la clase de clave de la clave del productor del comando de instanciación del productor, accediendo a la instancia identificada por el productor de interés a través de una estructura de seguimiento de instancia utilizando la clave de instancia de la clave del productor del comando de instanciación del productor, y accediendo a la declaración de dependencia del productor del método identificado por el productor de interés a través de una estructura de seguimiento de métodos usando la clave de método de la clave del productor del comando de instanciación del productor.
9. El sistema de cualquiera de las reivindicaciones 1 a 8, donde la clave de instanciación de al menos algunos de los productores mantiene una referencia a la instancia identificada mediante ese productor.
10. El sistema de cualquiera de las reivindicaciones 1 a 9, donde dicho código de cliente también incluye:
comandos de instanciación del productor adicionales que hacen que el entorno de ejecución de código orientado a objetos automáticamente descubra, construya, y opcionalmente resuelva otros grafos de productores, donde cada uno de dichos comandos de ejecución hacen que dicho entorno de ejecución de código orientado a objetos ejecute todos los grafos de productor.
El sistema de cualquiera de las reivindicaciones 1 a 10, donde dicho código orientado a objetos incluye definiciones de clases, donde dichas definiciones de clases incluyen métodos con las declaraciones de dependencias del productor.
12. El sistema de la reivindicación 11, donde las declaraciones de dependencias del productor definen los vinculos entre los productores como parte de la definición de las clases, más que en el momento de instanciación de las 15 instancias de esas clases.
Patentes similares o relacionadas:
Dispositivo electrónico y procedimiento de realización de comunicación híbrida con dispositivo electrónico externo, del 3 de Junio de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un dispositivo electrónico que comprende: un primer circuito de comunicación que realiza comunicación inalámbrica utilizando un primer protocolo de comunicación; […]
Detección automática de emociones a través de hábitos alimentarios, del 27 de Mayo de 2020, de UNIVERSIDAD COMPLUTENSE DE MADRID: Detección automática de emociones a través de hábitos alimentarios. Los estados emocionales están relacionados con patrones de alimentación que nos afectan […]
Manipulación multitáctil de objetos de aplicación, del 22 de Abril de 2020, de Microsoft Technology Licensing, LLC: Método de transformación de la entrada multitáctil en uno o más eventos de manipulación, teniendo el método realizado en un dispositivo informático […]
Método y dispositivo de usuario de procesado de visualización de componentes, del 18 de Marzo de 2020, de HUAWEI DEVICE CO., LTD: Método para procesar un componente en un contenedor de un equipo de usuario (UE), en donde el componente se puede mover a cualquier posición […]
Aparato y procedimiento para ejecutar aplicaciones en un terminal móvil, del 1 de Enero de 2020, de SAMSUNG ELECTRONICS CO., LTD.: Un aparato configurado para ejecutar al menos una de una pluralidad de aplicaciones en un terminal móvil, que comprende: una pantalla configurada para visualizar una pantalla […]
Un método y sistema para modelado de tareas de aplicaciones de teléfono móvil, del 1 de Enero de 2020, de DEUTSCHE TELEKOM AG: Un sistema para determinar el uso y ayudar en la operación de aplicaciones secuenciales interactivas que se ejecutan en uno o más dispositivos móviles, que comprende: […]
Simulación de inercia de objetos multitáctiles, del 1 de Enero de 2020, de Microsoft Technology Licensing, LLC: Un procedimiento implementado por ordenador para proporcionar un movimiento realista de objetos manipulados mediante entrada multitáctil, comprendiendo el procedimiento […]
Perfilado de dispositivos físicos compuestos para sistemas de monitorización/control, del 4 de Diciembre de 2019, de Schneider Electric USA, Inc: Un método para crear un perfil lógico para dispositivos físicos de un sistema de potencia para que interactúe […]