Computational improvements in Prolog applications by predicate variable pointers

The programming tradeoffs between structure-oriented and clause-oriented operations on data structures in Prolog are limited in current implementations because the assertion of clauses that include uninstantiated variables destroys any binding between these variables and those with which they are un...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:IEEE transactions on software engineering 1990-05, Vol.16 (5), p.490-497
1. Verfasser: Karam, G.M.
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 497
container_issue 5
container_start_page 490
container_title IEEE transactions on software engineering
container_volume 16
creator Karam, G.M.
description The programming tradeoffs between structure-oriented and clause-oriented operations on data structures in Prolog are limited in current implementations because the assertion of clauses that include uninstantiated variables destroys any binding between these variables and those with which they are unified in the execution of the program. Built-in predicates for Prolog that allow one to assert predicate variables pointers, which are constants, rather than uninstantiated variables, are presented. The author shows: the possible performance benefits of clause-oriented implementations of data structures over equivalent structure-oriented versions, the logical implications of the proposed built-in predicates, and their practical significance by integrating them in C-Prolog and evaluating the two different implementations of the symbol table dictionary in D.H.D. Warren's pseudo-Pascal compiler example.< >
doi_str_mv 10.1109/32.52772
format Article
fullrecord <record><control><sourceid>proquest_RIE</sourceid><recordid>TN_cdi_crossref_primary_10_1109_32_52772</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>52772</ieee_id><sourcerecordid>1142901</sourcerecordid><originalsourceid>FETCH-LOGICAL-c291t-592a114621ac711f8104501a3e454c82b46f6333999c95099e3133583bc85cdd3</originalsourceid><addsrcrecordid>eNpd0M1LwzAYBvAgCs4pePUWRMRLZz6aNu9Rhl8wcAc9hzRLJSNtatIO9t_bbbKDp_CSHw_v-yB0TcmMUgKPnM0EK0t2giYUOGRcMHKKJoSAzISQcI4uUloTQkRZiglazkPTDb3uXWi1x67pYtjYxrZ9wq7Fyxh8-Ma667wze5RwtcVdtKvdbPFGR6crb3EXXNvbmC7RWa19sld_7xR9vTx_zt-yxcfr-_xpkRkGtM8EME1pXjCqTUlpLSnJBaGa21zkRrIqL-qCcw4ABgQBsJxyLiSvjBRmteJTdH_IHRf-GWzqVeOSsd7r1oYhKSYESJDlCG__wXUY4nhsUhTGRhjkckQPB2RiSCnaWnXRNTpuFSVq16viTO17HendX55ORvs66ta4dPSFlAWn-chuDsxZa4-_h4hfoU9-BQ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>195582948</pqid></control><display><type>article</type><title>Computational improvements in Prolog applications by predicate variable pointers</title><source>IEEE Electronic Library (IEL)</source><creator>Karam, G.M.</creator><creatorcontrib>Karam, G.M.</creatorcontrib><description>The programming tradeoffs between structure-oriented and clause-oriented operations on data structures in Prolog are limited in current implementations because the assertion of clauses that include uninstantiated variables destroys any binding between these variables and those with which they are unified in the execution of the program. Built-in predicates for Prolog that allow one to assert predicate variables pointers, which are constants, rather than uninstantiated variables, are presented. The author shows: the possible performance benefits of clause-oriented implementations of data structures over equivalent structure-oriented versions, the logical implications of the proposed built-in predicates, and their practical significance by integrating them in C-Prolog and evaluating the two different implementations of the symbol table dictionary in D.H.D. Warren's pseudo-Pascal compiler example.&lt; &gt;</description><identifier>ISSN: 0098-5589</identifier><identifier>EISSN: 1939-3520</identifier><identifier>DOI: 10.1109/32.52772</identifier><identifier>CODEN: IESEDJ</identifier><language>eng</language><publisher>New York, NY: IEEE</publisher><subject>Applications ; Applied sciences ; Assembly ; Compilers ; Computational complexity ; Computational efficiency ; Computer programming ; Computer science; control theory; systems ; Data mining ; Data structures ; Dictionaries ; Exact sciences and technology ; Implementations ; Logic programming ; Manipulator dynamics ; Optimization techniques ; Programming languages ; Programming profession ; Prolog ; Reactive power ; Software ; Variables</subject><ispartof>IEEE transactions on software engineering, 1990-05, Vol.16 (5), p.490-497</ispartof><rights>1990 INIST-CNRS</rights><rights>Copyright Institute of Electrical and Electronics Engineers, Inc. (IEEE) May 1990</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><cites>FETCH-LOGICAL-c291t-592a114621ac711f8104501a3e454c82b46f6333999c95099e3133583bc85cdd3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/52772$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>314,780,784,796,27923,27924,54757</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/52772$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc><backlink>$$Uhttp://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&amp;idt=6886314$$DView record in Pascal Francis$$Hfree_for_read</backlink></links><search><creatorcontrib>Karam, G.M.</creatorcontrib><title>Computational improvements in Prolog applications by predicate variable pointers</title><title>IEEE transactions on software engineering</title><addtitle>TSE</addtitle><description>The programming tradeoffs between structure-oriented and clause-oriented operations on data structures in Prolog are limited in current implementations because the assertion of clauses that include uninstantiated variables destroys any binding between these variables and those with which they are unified in the execution of the program. Built-in predicates for Prolog that allow one to assert predicate variables pointers, which are constants, rather than uninstantiated variables, are presented. The author shows: the possible performance benefits of clause-oriented implementations of data structures over equivalent structure-oriented versions, the logical implications of the proposed built-in predicates, and their practical significance by integrating them in C-Prolog and evaluating the two different implementations of the symbol table dictionary in D.H.D. Warren's pseudo-Pascal compiler example.&lt; &gt;</description><subject>Applications</subject><subject>Applied sciences</subject><subject>Assembly</subject><subject>Compilers</subject><subject>Computational complexity</subject><subject>Computational efficiency</subject><subject>Computer programming</subject><subject>Computer science; control theory; systems</subject><subject>Data mining</subject><subject>Data structures</subject><subject>Dictionaries</subject><subject>Exact sciences and technology</subject><subject>Implementations</subject><subject>Logic programming</subject><subject>Manipulator dynamics</subject><subject>Optimization techniques</subject><subject>Programming languages</subject><subject>Programming profession</subject><subject>Prolog</subject><subject>Reactive power</subject><subject>Software</subject><subject>Variables</subject><issn>0098-5589</issn><issn>1939-3520</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>1990</creationdate><recordtype>article</recordtype><sourceid>8G5</sourceid><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><sourceid>GUQSH</sourceid><sourceid>M2O</sourceid><recordid>eNpd0M1LwzAYBvAgCs4pePUWRMRLZz6aNu9Rhl8wcAc9hzRLJSNtatIO9t_bbbKDp_CSHw_v-yB0TcmMUgKPnM0EK0t2giYUOGRcMHKKJoSAzISQcI4uUloTQkRZiglazkPTDb3uXWi1x67pYtjYxrZ9wq7Fyxh8-Ma667wze5RwtcVdtKvdbPFGR6crb3EXXNvbmC7RWa19sld_7xR9vTx_zt-yxcfr-_xpkRkGtM8EME1pXjCqTUlpLSnJBaGa21zkRrIqL-qCcw4ABgQBsJxyLiSvjBRmteJTdH_IHRf-GWzqVeOSsd7r1oYhKSYESJDlCG__wXUY4nhsUhTGRhjkckQPB2RiSCnaWnXRNTpuFSVq16viTO17HendX55ORvs66ta4dPSFlAWn-chuDsxZa4-_h4hfoU9-BQ</recordid><startdate>19900501</startdate><enddate>19900501</enddate><creator>Karam, G.M.</creator><general>IEEE</general><general>Institute of Electrical and Electronics Engineers</general><general>IEEE Computer Society</general><scope>IQODW</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7WY</scope><scope>7WZ</scope><scope>7X7</scope><scope>7XB</scope><scope>87Z</scope><scope>88E</scope><scope>88F</scope><scope>88I</scope><scope>88K</scope><scope>8AL</scope><scope>8FE</scope><scope>8FG</scope><scope>8FI</scope><scope>8FJ</scope><scope>8FK</scope><scope>8FL</scope><scope>8G5</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BEZIV</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>FRNLG</scope><scope>FYUFA</scope><scope>F~G</scope><scope>GHDGH</scope><scope>GNUQQ</scope><scope>GUQSH</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K60</scope><scope>K6~</scope><scope>K7-</scope><scope>K9.</scope><scope>L.-</scope><scope>L6V</scope><scope>M0C</scope><scope>M0N</scope><scope>M0S</scope><scope>M1P</scope><scope>M1Q</scope><scope>M2O</scope><scope>M2P</scope><scope>M2T</scope><scope>M7S</scope><scope>MBDVC</scope><scope>P5Z</scope><scope>P62</scope><scope>PQBIZ</scope><scope>PQBZA</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope><scope>Q9U</scope><scope>7SC</scope><scope>8FD</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>19900501</creationdate><title>Computational improvements in Prolog applications by predicate variable pointers</title><author>Karam, G.M.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c291t-592a114621ac711f8104501a3e454c82b46f6333999c95099e3133583bc85cdd3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>1990</creationdate><topic>Applications</topic><topic>Applied sciences</topic><topic>Assembly</topic><topic>Compilers</topic><topic>Computational complexity</topic><topic>Computational efficiency</topic><topic>Computer programming</topic><topic>Computer science; control theory; systems</topic><topic>Data mining</topic><topic>Data structures</topic><topic>Dictionaries</topic><topic>Exact sciences and technology</topic><topic>Implementations</topic><topic>Logic programming</topic><topic>Manipulator dynamics</topic><topic>Optimization techniques</topic><topic>Programming languages</topic><topic>Programming profession</topic><topic>Prolog</topic><topic>Reactive power</topic><topic>Software</topic><topic>Variables</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Karam, G.M.</creatorcontrib><collection>Pascal-Francis</collection><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>ABI/INFORM Collection</collection><collection>ABI/INFORM Global (PDF only)</collection><collection>Health &amp; Medical Collection</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>ABI/INFORM Global (Alumni Edition)</collection><collection>Medical Database (Alumni Edition)</collection><collection>Military Database (Alumni Edition)</collection><collection>Science Database (Alumni Edition)</collection><collection>Telecommunications (Alumni Edition)</collection><collection>Computing Database (Alumni Edition)</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Hospital Premium Collection</collection><collection>Hospital Premium Collection (Alumni Edition)</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ABI/INFORM Collection (Alumni Edition)</collection><collection>Research Library (Alumni Edition)</collection><collection>Materials Science &amp; Engineering Collection</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Business Premium Collection</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>Business Premium Collection (Alumni)</collection><collection>Health Research Premium Collection</collection><collection>ABI/INFORM Global (Corporate)</collection><collection>Health Research Premium Collection (Alumni)</collection><collection>ProQuest Central Student</collection><collection>Research Library Prep</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>ProQuest Business Collection (Alumni Edition)</collection><collection>ProQuest Business Collection</collection><collection>Computer Science Database</collection><collection>ProQuest Health &amp; Medical Complete (Alumni)</collection><collection>ABI/INFORM Professional Advanced</collection><collection>ProQuest Engineering Collection</collection><collection>ABI/INFORM Global</collection><collection>Computing Database</collection><collection>Health &amp; Medical Collection (Alumni Edition)</collection><collection>Medical Database</collection><collection>Military Database</collection><collection>Research Library</collection><collection>Science Database</collection><collection>Telecommunications Database</collection><collection>Engineering Database</collection><collection>Research Library (Corporate)</collection><collection>Advanced Technologies &amp; Aerospace Database</collection><collection>ProQuest Advanced Technologies &amp; Aerospace Collection</collection><collection>ProQuest One Business</collection><collection>ProQuest One Business (Alumni)</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>Engineering Collection</collection><collection>ProQuest Central Basic</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>IEEE transactions on software engineering</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Karam, G.M.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Computational improvements in Prolog applications by predicate variable pointers</atitle><jtitle>IEEE transactions on software engineering</jtitle><stitle>TSE</stitle><date>1990-05-01</date><risdate>1990</risdate><volume>16</volume><issue>5</issue><spage>490</spage><epage>497</epage><pages>490-497</pages><issn>0098-5589</issn><eissn>1939-3520</eissn><coden>IESEDJ</coden><abstract>The programming tradeoffs between structure-oriented and clause-oriented operations on data structures in Prolog are limited in current implementations because the assertion of clauses that include uninstantiated variables destroys any binding between these variables and those with which they are unified in the execution of the program. Built-in predicates for Prolog that allow one to assert predicate variables pointers, which are constants, rather than uninstantiated variables, are presented. The author shows: the possible performance benefits of clause-oriented implementations of data structures over equivalent structure-oriented versions, the logical implications of the proposed built-in predicates, and their practical significance by integrating them in C-Prolog and evaluating the two different implementations of the symbol table dictionary in D.H.D. Warren's pseudo-Pascal compiler example.&lt; &gt;</abstract><cop>New York, NY</cop><pub>IEEE</pub><doi>10.1109/32.52772</doi><tpages>8</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0098-5589
ispartof IEEE transactions on software engineering, 1990-05, Vol.16 (5), p.490-497
issn 0098-5589
1939-3520
language eng
recordid cdi_crossref_primary_10_1109_32_52772
source IEEE Electronic Library (IEL)
subjects Applications
Applied sciences
Assembly
Compilers
Computational complexity
Computational efficiency
Computer programming
Computer science
control theory
systems
Data mining
Data structures
Dictionaries
Exact sciences and technology
Implementations
Logic programming
Manipulator dynamics
Optimization techniques
Programming languages
Programming profession
Prolog
Reactive power
Software
Variables
title Computational improvements in Prolog applications by predicate variable pointers
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-11T13%3A03%3A29IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_RIE&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Computational%20improvements%20in%20Prolog%20applications%20by%20predicate%20variable%20pointers&rft.jtitle=IEEE%20transactions%20on%20software%20engineering&rft.au=Karam,%20G.M.&rft.date=1990-05-01&rft.volume=16&rft.issue=5&rft.spage=490&rft.epage=497&rft.pages=490-497&rft.issn=0098-5589&rft.eissn=1939-3520&rft.coden=IESEDJ&rft_id=info:doi/10.1109/32.52772&rft_dat=%3Cproquest_RIE%3E1142901%3C/proquest_RIE%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=195582948&rft_id=info:pmid/&rft_ieee_id=52772&rfr_iscdi=true