Reporte técnico
A generic version of scanf programmed in C5
Fecha
2004Registro en:
CABEZAS, J. "A generic version of scanf programmed in C5". Reportes Técnicos 04-05. UR. FI – INCO, 2004.
0797-6410
Autor
Cabezas, Juan José
Institución
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.