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.


PDFTo preview full article text in PDF format click here

Get Free ReaderYou could obtain free Acrobat Reader from Adobe


Copyright © International Olympiads in Informatics, Vilnius University Institute of Mathematics and Informatics, 2015