A generic version of scanf programmed in C5

Cabezas, Juan José

Resumen:

In this paper we present a generic version of \{\\tt scanf\} the standard library function of the C language programmed in C5. 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 sequence of C constant expressions that can be attached to type expressions in a type declaration. These extensions make C5 powerful enough to express in a generic form functions with dependent type arguments like and \{\\tt printf\} and \{\\tt scanf\}. The resulting version of \{\\tt scanf\} is a parser generator based on the Earley algorithm that for a given type constructs an object of such type according to the input string.


Detalles Bibliográficos
2004
Dynamic Typing
Dependent Pair Type
Generic Programming
Earley algorithm
Universidad de la República
COLIBRI
http://hdl.handle.net/20.500.12008/3501
Acceso abierto
Licencia Creative Commons Atribución – No Comercial – Sin Derivadas (CC BY-NC-ND 4.0)