Search Results

Documents authored by Stulova, Nataliia


Document
Towards Static Performance Guarantees for Programs with Run-Time Checks

Authors: Maximiliano Klemen, Nataliia Stulova, Pedro Lopez-Garcia, José F. Morales, and Manuel V. Hermenegildo

Published in: OASIcs, Volume 64, Technical Communications of the 34th International Conference on Logic Programming (ICLP 2018)


Abstract
This document is an extended abstract of the Technical Report CLIP-1/2018.0.

Cite as

Maximiliano Klemen, Nataliia Stulova, Pedro Lopez-Garcia, José F. Morales, and Manuel V. Hermenegildo. Towards Static Performance Guarantees for Programs with Run-Time Checks. In Technical Communications of the 34th International Conference on Logic Programming (ICLP 2018). Open Access Series in Informatics (OASIcs), Volume 64, pp. 10:1-10:2, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


Copy BibTex To Clipboard

@InProceedings{klemen_et_al:OASIcs.ICLP.2018.10,
  author =	{Klemen, Maximiliano and Stulova, Nataliia and Lopez-Garcia, Pedro and Morales, Jos\'{e} F. and Hermenegildo, Manuel V.},
  title =	{{Towards Static Performance Guarantees for Programs with Run-Time Checks}},
  booktitle =	{Technical Communications of the 34th International Conference on Logic Programming (ICLP 2018)},
  pages =	{10:1--10:2},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-090-3},
  ISSN =	{2190-6807},
  year =	{2018},
  volume =	{64},
  editor =	{Dal Palu', Alessandro and Tarau, Paul and Saeedloei, Neda and Fodor, Paul},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICLP.2018.10},
  URN =		{urn:nbn:de:0030-drops-98765},
  doi =		{10.4230/OASIcs.ICLP.2018.10},
  annote =	{Keywords: Run-time Checks, Assertions, Abstract Interpretation, Resource Usage Analysis}
}
Document
Towards Run-time Checks Simplification via Term Hiding

Authors: Nataliia Stulova, Jose F. Morales, and Manuel V. Hermenegildo

Published in: OASIcs, Volume 58, Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)


Abstract
One of the most attractive features of untyped languages for programmers is the flexibility in term creation and manipulation. However, with such power comes the responsibility of ensuring correctness of operations. A solution is adding run-time checks to the program via assertions, but this can introduce overheads that are in many cases impractical. While such overheads can be greatly reduced with static analysis, the gains depend strongly on the quality of the information inferred. Reusable libraries, i.e., library modules that are pre-compiled independently of the client, pose special challenges in this context. We propose a relaxed form of atom-based module system (which hides only a selected set of functor symbols but still provides a strict mechanism to prevent breaking visibility rules across modules) that can enrich significantly the shape information that can be inferred in reusable modular programs. We also propose an improved run-time checking approach that takes advantage of the proposed mechanisms to achieve large reductions in overhead, closer to those of static languages even in the reusable-library context. While the approach is general and system-independent, we present it for concreteness in the context of the Ciao assertion language and combined static/dynamic checking framework. Our method maintains full expressiveness of the checks in this context. Contrary to other approaches it does not introduce the need to switch the language to (static) type systems, which is known to change the semantics in languages like Prolog. We also study the approach experimentally and evaluate the overhead reduction achieved in the run-time checks.

Cite as

Nataliia Stulova, Jose F. Morales, and Manuel V. Hermenegildo. Towards Run-time Checks Simplification via Term Hiding. In Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017). Open Access Series in Informatics (OASIcs), Volume 58, pp. 9:1-9:3, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


Copy BibTex To Clipboard

@InProceedings{stulova_et_al:OASIcs.ICLP.2017.9,
  author =	{Stulova, Nataliia and Morales, Jose F. and Hermenegildo, Manuel V.},
  title =	{{Towards Run-time Checks Simplification via Term Hiding}},
  booktitle =	{Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)},
  pages =	{9:1--9:3},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-058-3},
  ISSN =	{2190-6807},
  year =	{2018},
  volume =	{58},
  editor =	{Rocha, Ricardo and Son, Tran Cao and Mears, Christopher and Saeedloei, Neda},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICLP.2017.9},
  URN =		{urn:nbn:de:0030-drops-84601},
  doi =		{10.4230/OASIcs.ICLP.2017.9},
  annote =	{Keywords: Module Systems, Implementation, Run-time Checking, Assertion-based Debugging and Validation, Static Analysis}
}
Document
On Improving Run-time Checking in Dynamic Languages

Authors: Nataliia Stulova

Published in: OASIcs, Volume 58, Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)


Abstract
In order to detect incorrect program behaviors, a number of approaches have been proposed, which include a combination of language-level constructs (procedure-level annotations such as assertions/contracts, gradual types, etc.) and associated tools (such as static code analyzers and run-time verification frameworks). However, it is often the case that these constructs and tools are not used to their full extent in practice due to a number of limitations such as excessive run-time overhead and/or limited expressiveness. The issue is especially prominent in the context of dynamic languages without an underlying strong type system, such as Prolog. In our work we propose several practical solutions for minimizing the run-time overhead associated with assertion-based verification while keeping the correctness guarantees provided by run-time checks. We present the solutions in the context of the Ciao system, where a combination of an abstract interpretation-based static analyzer and run-time verification framework is available, although our proposals can be straightforwardly adapted to any other similar system.

Cite as

Nataliia Stulova. On Improving Run-time Checking in Dynamic Languages. In Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017). Open Access Series in Informatics (OASIcs), Volume 58, pp. 15:1-15:10, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2018)


Copy BibTex To Clipboard

@InProceedings{stulova:OASIcs.ICLP.2017.15,
  author =	{Stulova, Nataliia},
  title =	{{On Improving Run-time Checking in Dynamic Languages}},
  booktitle =	{Technical Communications of the 33rd International Conference on Logic Programming (ICLP 2017)},
  pages =	{15:1--15:10},
  series =	{Open Access Series in Informatics (OASIcs)},
  ISBN =	{978-3-95977-058-3},
  ISSN =	{2190-6807},
  year =	{2018},
  volume =	{58},
  editor =	{Rocha, Ricardo and Son, Tran Cao and Mears, Christopher and Saeedloei, Neda},
  publisher =	{Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
  address =	{Dagstuhl, Germany},
  URL =		{https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICLP.2017.15},
  URN =		{urn:nbn:de:0030-drops-84665},
  doi =		{10.4230/OASIcs.ICLP.2017.15},
  annote =	{Keywords: Runtime Verification, Assertions, Prolog, Logic Programming}
}
Questions / Remarks / Feedback
X

Feedback for Dagstuhl Publishing


Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail