Implementing Contexts in Logic Programming
- Manage
- Copy
- Actions
- Export
- Annotate
- Print Preview
Choose the export format from the list below:
- Office Formats (1)
-
Export as Portable Document Format (PDF) using Apache Formatting Objects Processor (FOP)
-
- Other Formats (1)
-
Export as HyperText Markup Language (HTML)
-
Enrico Denti, Evelina Lamma, Paola Mello, Antonio Natali, Andrea Omicini
Evelina Lamma, Paola Mello (eds.)
3rd International Workshop on Extensions of Logic Programming (ELP'92), pages 145–170
Tecnoprint Bologna, Bologna, Italy
February 1992
The concept of context and contextual programming has been recently introduced in the logic programming field in order to enrich logic languages with general purpose concepts and mechanisms to structure programs, to support quick prototyping techniques and to promote the design and development of open, extensible software components. The key-idea of contextual logic programming is to allow programmers to introduce the software components they need not only in a static way, but also dynamically, by composition of primitive, unalterable objects, called units, which are collections of clauses. The main goal is to give a uniform language support to fundamental concepts in knowledge-based applications, such as inheritance, viewpoints, evolving knowledge, etc. A context is intended here as an abstraction that can be interpreted in two ways: at programming-level, it can be viewed as a dynamically configured software component; at implementation-level, it works like a structured environment, supporting a number of different binding mechanisms, each related to a specific high-level component architecture. In particular, the eager binding mechanism allows users to define software components according to conservative architectures, while lazy binding supports evolving, open architectures. Contexts have been deeply studied in the last years both from the semantic and the implementative side.
The main goal of the first work is to discuss and compare the first two approaches by considering both methodological and performance aspects. In order to achieve comparable performance results, a simulator of the VLSI Prolog coprocessor has been used. Two versions of such a simulator have been employed, the first supporting standard Prolog (i.e. implementing the standard WAM), the second supporting the S-WAM. Since both machines share the same set of micro-coded instruction, this set has been used as unit of measure. Reliable measures of computational costs can also be achieved, since the execution time of each micro-instruction is known. The main goal of the second work is to describe the third implementation approach, assuming as host environment the SICStus Prolog system. This approach (called CSM, i.e. Contexts as SICStus Modules) allowed us to achieve the following important results:
Since CSM is based on a completely different predicate addressing scheme and operating environment, no quantitative performance comparison is immediately possible with the previous approaches. In any case, it is worth to note that the last solution can be considered as complementary with respect to the S-WAM design. In particular, while the stack-based S-WAM context representation provides automatic memory management in case of context deallocation, the CSM approach delegates such a problem to the user, by allowing, on the other side, the system programmer to exploit context memoization techniques. In conclusion, far from stating the ultimate word in a field still open to significative improvements, our work shows that contextual logic programming paradigm can be effectively used also in industrial environments to face several of the most critical problems of modern software engineering. |
Talks
- Implementing Contexts in Logic Programming (talk, 26/02/1992) — Andrea Omicini (Enrico Denti, Evelina Lamma, Paola Mello, Antonio Natali, Andrea Omicini)
Events
- 3rd Workshop on Extension of Logic Programming (ELP'92) — 26/02/1992–28/02/1992
Publications / Personal
Publications / Views
Home
— clouds
tags | authors | editors | journals
— per year
2023 | 2022 | 2021 | 2020 | 2019 | 2018 | 2017 | 2016 | 2015 | 2014–1927
— per sort
in journal | in proc | chapters | books | edited | spec issues | editorials | entries | manuals | tech reps | phd th | others
— per status
online | in press | proof | camera-ready | revised | accepted | revision | submitted | draft | note
— services
ACM Digital Library | DBLP | IEEE Xplore | IRIS | PubMed | Google Scholar | Scopus | Semantic Scholar | Web of Science | DOI
Publication
— authors
Enrico Denti, Evelina Lamma, Paola Mello, Antonio Natali, Andrea Omicini
— editors
Evelina Lamma, Paola Mello
— status
published
— sort
paper in proceedings
— publication date
February 1992
— volume
3rd International Workshop on Extensions of Logic Programming (ELP'92)
— pages
145–170
— address
Bologna, Italy
notes
— note
Pre-proceedings