Ciclón (lenguaje de programación)

Ciclón
Semántica procesal
clase de idioma lenguaje de programación
tipo de ejecución compilado
Apareció en 2001
Autor AT&T en colaboración con varias universidades
Desarrollador AT&T
sistema de tipos estricto, estático
sido influenciado C , ML
influenciado Rust (lenguaje de programación)
Sitio web cyclone.thelanguage.org

Cyclone (pronunciado "C-clone" o "Cyclone") es un lenguaje de programación de investigación creado por Dan Grossman , Trevor Jim y Greg Morrissette en la Universidad de Cornell como un refinamiento del lenguaje C clásico para mejorar la confiabilidad y seguridad de la programación. , manteniendo características de bajo nivel y aplicabilidad en áreas tradicionales de C ( programación de sistemas, programación de microcontroladores ).

Propósito e historia del proyecto

El objetivo principal del diseño es hacer que los programas C sean más seguros contra errores y vulnerabilidades , como los infames desbordamientos de búfer , con una pérdida mínima de eficiencia y continuidad. La idea es tomar funciones de seguridad efectivas de lenguajes de alto nivel e implementarlas en un lenguaje de nivel inferior.

Dan Grossman , Trevor Jim y Greg Morrissette de la Universidad de Cornell sentaron las bases del desarrollo al diseñar e implementar el lenguaje ensamblador fuertemente tipado TAL [1] (lenguaje ensamblador tipado).

La versión 1.0 del compilador se lanzó el 8 de mayo de 2006 . Se ejecuta en entornos POSIX de 32 bits : Linux , Cygwin / Windows , MacOS y BSD . Distribuido bajo los términos de GNU GPL versión 2.0. Por el momento, el proyecto se cierra oficialmente con la frase "Objetivos de investigación alcanzados". Algunas de las ideas de diseño se utilizan en el lenguaje de programación Rust .

Descripción general del idioma

Cyclone se distingue de C principalmente por una tipificación más estricta y, si es necesario, la introducción de controles de tiempo de ejecución, por ejemplo, para respetar los límites de la matriz . Trabajo significativamente extendido y formalizado con punteros , sin embargo, los métodos aritméticos de punteros familiares para los programadores de C continúan funcionando. Se han agregado al lenguaje muchas funciones prácticas de C++ , C99 y GCC . Se ha introducido un nuevo tipo de datos de unión @tagged  , un análogo de c- union que almacena información sobre qué tipo de datos almacena actualmente.

Las mayores innovaciones están relacionadas con el préstamo de ideas para trabajar con tipos de datos del lenguaje ML . Este es un sistema de tipado estático flexible con soporte para inferencia de tipos , que facilita la descripción de varias estructuras recursivas ( listas , árboles , etc.) y permite el uso de polimorfismos y programación genérica . El programador tiene control total sobre el proceso de coincidencia de tipos .

El nuevo lenguaje es muy parecido a C, lo que permite que las aplicaciones escritas en C se transfieran a él con un mínimo esfuerzo. En particular, los creadores de Cyclone han desarrollado un servidor web simple que dicen que es completamente inmune a los errores y vulnerabilidades comunes .

Véase también

Notas

  1. Lenguaje ensamblador escrito . Consultado el 15 de mayo de 2007. Archivado desde el original el 2 de junio de 2007.

Fuentes

Enlaces