C5 printf and C5 scanfin C5 version 0.98

 

Autor(es):
Cabezas, Juan José
Tipo:
Reporte técnico
Versión:
Publicado
Resumen:

In this paper we present the version 0.98 (September 2006) of the C compiler including the functions C5 printf and C5 scanf. C5 is a superset of the C programming language. The main difference between C and C5 is that the type system of C5 supports the definition of types of dependent pairs, i.e., the type of the second member of the pair depends on the value of the first member (which is a type). Another C5 extension is the type initialization expression which is a list of dependent pairs that can be attached to type expressions in a type declaration. These extensions provide C5 with dynamic type inspection at run time and attribute type definition. The result is a powerful framework for generic programming. The paper presents the improvements of the version 0.98 including the functions C5 scanf, C5 printf, C5 lenSearch and C5 idxSearch
En este trabajo se presentan la versión 0.98 (setiembre, 2006) del compilador de C5 incluyendo las funciones C5 printf y C5 scanf. C5 es un superconjunto del lenguaje de programación C. La diferencia principal entre C y C5 es que el sistema de tipos de C5 acepta definiciones de tipos de pares dependientes, es decir, que el tipo del segundo miembro del par depende del valor del primero (el cual es un tipo). Otra extensión de C5 es la expresión de inicialización de tipo que es una secuencia de pares dependientes que se puede adjuntar a una expresión de tipo en una declaración de tipo. Estas extensiones le otorgan a C5 la capacidad de hacer inspecciones de tipos dinámicos en tiempo de ejecución y realizar declaraciones de tipos con atributos. El trabajo presenta las mejoras de la version 0.98 y en particular las funciones C5 scanf, C5 printf, C5 lenSearch y C5 idxSearch.

Año:
2006
Temas:
Dynamic type
Dependent pair type
Generic programming
Parser
Institución:
Universidad de la República
Repositorio:
COLIBRI
Enlace(s):
http://hdl.handle.net/20.500.12008/3523
Nivel de acceso:
Acceso abierto