@InProceedings{KulasMannpcr, author = {M.~Kula\v{s}}, title = {Annotations for {P}rolog -- {A} Concept and Runtime Handling}, booktitle = {Logic-Based Program Synthesis and Transformation. Selected Papers of the 9th Int. Workshop (LOPSTR'99), Venezia}, editor = {A.~Bossi}, volume = {1817}, series = {LNCS}, year = {2000}, publisher = {Springer-Verlag}, pages = {234--254}, url={ http://www.springer.de/cgi-bin/search_book.pl?isbn=3-540-67628-7 }, abstract={ A concept of annotations for rendering procedural aspects of Prolog is introduced, built around well-known procedural concepts of Standard Prolog. Annotations describe properties of predicates. Such properties can be pre or post conditions, which must hold true when a predicate is called or exited, respectively. We introduce two more kinds of annotations, fail and redo annotations, hence incorporating a whole model of Prolog execution into our language. This enables natural rendering of many procedural properties of Prolog which cannot be expressed with only pre/post conditions, like non-failure. Every annotation can be narrowed down to a subset of calls, via calling premiss. With the novel idea of context we supersede program-point assertions. The annotations are defined simply as Prolog goals, making them fully parametric and therefore comfortable for debugging. All examples presented are actual runs of our system Nope. } }