A generic version of scanf programmed in C5
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.
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) |
Resultados similares
-
C5 printf and C5 scanfin C5 version 0.98
Autor(es):: Cabezas, Juan José
Fecha de publicación:: (2006) -
Functions in C5
Autor(es):: Cabezas, Juan José
Fecha de publicación:: (2006) -
Reimplementación de AspectAG basada en nuevas extensiones de Haskell
Autor(es):: García-Garland, Juan
Fecha de publicación:: (2019) -
The C5 programming language 2007 edition
Autor(es):: Cabezas, Juan José
Fecha de publicación:: (2007) -
Un sistema de tipos gradual con semántica de casts para el lenguaje Elixir
Autor(es):: Ferencz Cohn, Damián
Fecha de publicación:: (2023)