Verificación de límites en tiempo de compilación para tipos definidos por el usuario.

Un medio de almacenamiento no transitorio legible por ordenador configurado con datos y con instrucciones que cuando son ejecutados en al menos un procesador hacen que el(los) procesador(es) realice(n) un proceso para verificar límites en tiempo de compilación de tipos definidos por el usuario (204),

comprendiendo el proceso las siguientes etapas realizadas durante la compilación de un programa desde un código fuente a través de un código de lenguaje intermedio hasta un código ejecutable:

identificar en el código fuente (122) una clase definida por el usuario (202) para acceder de forma segura a la memoria, es decir, una clase definida por el usuario (202) que tiene como miembro anotado un código de acceso a la memoria que está anotado con una anotación de verificación de límites definidos por el usuario (206) y también tiene como otro miembro anotado un miembro que proporciona un límite que se anota para indicar que proporciona información de límite para generar una verificación de límites en el código de acceso a la memoria;

la anotación de verificación de límites definidos por el usuario (206) comprende una anotación que indica al compilador que el código accede a un búfer mapeado en memoria u otra memoria asignada explícitamente;

insertar (304) en el código de lenguaje intermedio (124) una representación de verificación de límites (220) de la anotación de verificación de límites definidos por el usuario (206), siendo realizada la inserción durante la compilación del código fuente anotado correspondiente y siendo lograda la inserción (304) utilizando al menos uno de árboles de análisis, árboles de sintaxis abstracta, atributos y vectores auxiliares generalizados para representar la anotación de verificación de límites definidos por el usuario;

aplicar, al código de lenguaje intermedio y/o al código ejecutable, una optimización (228) que reduce la verificación de límites duplicada que de otro modo ocurriría en el código ejecutable (126);

en el que la aplicación de la optimización comprende determinar que todos los accesos dentro de un bucle a una variable de la clase definida por el usuario (204) están dentro de los límites de dirección de memoria permitidos de la variable y, en respuesta a esto, eliminar múltiples verificaciones de límites que de otro modo ocurrirían como un resultado de la ejecución del bucle, en el que la optimización se logra determinando analíticamente que un acceso a la memoria, que está sujeto a la verificación de límites, no puede asumir un valor durante la ejecución, lo que daría lugar a un acceso a la memoria fuera de los límites permitidos.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/US2011/051023.

Solicitante: Microsoft Technology Licensing, LLC.

Nacionalidad solicitante: Estados Unidos de América.

Dirección: ONE MICROSOFT WAY REDMOND, WA 98052 ESTADOS UNIDOS DE AMERICA.

Inventor/es: HARVEY,DANIEL STEPHEN.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • G06F8/41

PDF original: ES-2733516_T3.pdf

 

Patentes similares o relacionadas:

Dispositivo y método de soporte de la generación de código de programa, dispositivo y método de ejecución del programa, y dispositivo y método de procesamiento de la compresión del código de programa y programa para el mismo, del 9 de Abril de 2019, de MITSUBISHI DENKI KABUSHIKI KAISHA: Un dispositivo de procesamiento de compresión de código de programa, para compresión de código de programa que está constituido por un código de ejecución descrito por una notación […]

Edición colaborativa, del 27 de Febrero de 2019, de Writelatex Limited: Un método implementado por ordenador para la previsualización de un documento compilado, que comprende: transmitir contenido del documento de un dispositivo […]

Método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT, nodo y sistema, del 21 de Noviembre de 2018, de HUAWEI TECHNOLOGIES CO., LTD.: Un método de obtención anticipada de datos para un sistema de almacenamiento de tabla hash distribuida DHT que comprende un primer nodo de almacenamiento y un segundo […]

Dispositivo y método de soporte de la generación de código de programa, dispositivo y método de ejecución del programa, dispositivo y método de compresión del código de programa, programa para el mismo, del 25 de Octubre de 2018, de MITSUBISHI DENKI KABUSHIKI KAISHA: Un dispositivo de soporte de la generación de código de programa, que comprende: un medio de almacenamiento para almacenar como datos, una regla de […]

Otras patentes de Microsoft Technology Licensing, LLC