OLYMPIADS IN INFORMATICS, 2015, Vol. 9, pp. 3 - 14
© IOI, Vilnius University
ISSN 1822-7732
DOI: 10.15388/ioi.2015.01
libinteractive: A Better Way to Write Interactive Tasks
Luis Héctor CHÁVEZ
omegaUp
Hacienda de Coaxamalucan 138, Col. Hda. de Echegaray Naucalpan
Estado de México, México CP 53300
e-mail: lhchavez@omegaup.com
Abstract
Interactive tasks are currently written as a set of language-dependent shims and libraries that are linked against the contestant’s code to produce a single executable. This implies that task writers often need to generate three or four different libraries that need to be tested separately, for C/C++, Pascal and Java. Furthermore, the libraries must be written with care to avoid cheating, since it is possible for contestants to access the memory and opened files of the whole process. libinteractive solves these problems by defining an interface description language that is used to automatically generate shims in all IOI-approved languages in a way that is easily sandboxed; and a fast, portable interprocess communication mechanism that allows complete separation of the task writer and contestant code in different processes. This simplifies task creation and testing, making all tasks compatible with any future approved languages.
Keywords:
interactive tasks, performance, omegaup, sandbox, security.
To preview full article text in PDF format click here
You could obtain free Acrobat Reader from Adobe
Copyright © International Olympiads in Informatics, Vilnius University Institute of Mathematics and Informatics, 2015