Mode Checking in HAL View Full Text


Ontology type: schema:Chapter     


Chapter Info

DATE

2000-12-15

AUTHORS

María García de la Banda , Peter J. Stuckey , Warwick Harvey , Kim Marriott

ABSTRACT

Recent constraint logic programming (CLP) languages, such as HAL and Mercury, require type, mode and determinism declarations for predicates. This information allows the generation of efficient target code and the detection of many errors at compile-time. However, mode checking in such languages is difficult since the compiler is required to appropriately re-order literals in the predicate’s definition for each predicate mode declaration. The task is further complicated by the need to handle complex instantiations which interact with type declarations, higher order functions and predicates, and automatic initialization of solver variables. Here we give the first formal treatment of mode checking in strongly typed CLP languages which require reordering of clause body literals during mode checking. We also sketch the mode checking algorithms used in the HAL compiler. More... »

PAGES

1270-1284

Book

TITLE

Computational Logic — CL 2000

ISBN

978-3-540-67797-0
978-3-540-44957-7

Identifiers

URI

http://scigraph.springernature.com/pub.10.1007/3-540-44957-4_85

DOI

http://dx.doi.org/10.1007/3-540-44957-4_85

DIMENSIONS

https://app.dimensions.ai/details/publication/pub.1028447914


Indexing Status Check whether this publication has been indexed by Scopus and Web Of Science using the SN Indexing Status Tool
Incoming Citations Browse incoming citations for this publication using opencitations.net

JSON-LD is the canonical representation for SciGraph data.

TIP: You can open this SciGraph record using an external JSON-LD service: JSON-LD Playground Google SDTT

[
  {
    "@context": "https://springernature.github.io/scigraph/jsonld/sgcontext.json", 
    "about": [
      {
        "id": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/08", 
        "inDefinedTermSet": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/", 
        "name": "Information and Computing Sciences", 
        "type": "DefinedTerm"
      }, 
      {
        "id": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/0802", 
        "inDefinedTermSet": "http://purl.org/au-research/vocabulary/anzsrc-for/2008/", 
        "name": "Computation Theory and Mathematics", 
        "type": "DefinedTerm"
      }
    ], 
    "author": [
      {
        "affiliation": {
          "alternateName": "Monash University, 3168, Clayton, Australia", 
          "id": "http://www.grid.ac/institutes/grid.1002.3", 
          "name": [
            "Monash University, 3168, Clayton, Australia"
          ], 
          "type": "Organization"
        }, 
        "familyName": "de la Banda", 
        "givenName": "Mar\u00eda Garc\u00eda", 
        "id": "sg:person.016350443307.93", 
        "sameAs": [
          "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.016350443307.93"
        ], 
        "type": "Person"
      }, 
      {
        "affiliation": {
          "alternateName": "University of Melbourne, 3152, Parkville, Australia", 
          "id": "http://www.grid.ac/institutes/grid.1008.9", 
          "name": [
            "University of Melbourne, 3152, Parkville, Australia"
          ], 
          "type": "Organization"
        }, 
        "familyName": "Stuckey", 
        "givenName": "Peter J.", 
        "id": "sg:person.012243374043.93", 
        "sameAs": [
          "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.012243374043.93"
        ], 
        "type": "Person"
      }, 
      {
        "affiliation": {
          "alternateName": "Monash University, 3168, Clayton, Australia", 
          "id": "http://www.grid.ac/institutes/grid.1002.3", 
          "name": [
            "Monash University, 3168, Clayton, Australia"
          ], 
          "type": "Organization"
        }, 
        "familyName": "Harvey", 
        "givenName": "Warwick", 
        "id": "sg:person.016110070307.54", 
        "sameAs": [
          "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.016110070307.54"
        ], 
        "type": "Person"
      }, 
      {
        "affiliation": {
          "alternateName": "Monash University, 3168, Clayton, Australia", 
          "id": "http://www.grid.ac/institutes/grid.1002.3", 
          "name": [
            "Monash University, 3168, Clayton, Australia"
          ], 
          "type": "Organization"
        }, 
        "familyName": "Marriott", 
        "givenName": "Kim", 
        "id": "sg:person.014375607254.44", 
        "sameAs": [
          "https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.014375607254.44"
        ], 
        "type": "Person"
      }
    ], 
    "datePublished": "2000-12-15", 
    "datePublishedReg": "2000-12-15", 
    "description": "Recent constraint logic programming (CLP) languages, such as HAL and Mercury, require type, mode and determinism declarations for predicates. This information allows the generation of efficient target code and the detection of many errors at compile-time. However, mode checking in such languages is difficult since the compiler is required to appropriately re-order literals in the predicate\u2019s definition for each predicate mode declaration. The task is further complicated by the need to handle complex instantiations which interact with type declarations, higher order functions and predicates, and automatic initialization of solver variables. Here we give the first formal treatment of mode checking in strongly typed CLP languages which require reordering of clause body literals during mode checking. We also sketch the mode checking algorithms used in the HAL compiler.", 
    "editor": [
      {
        "familyName": "Lloyd", 
        "givenName": "John", 
        "type": "Person"
      }, 
      {
        "familyName": "Dahl", 
        "givenName": "Veronica", 
        "type": "Person"
      }, 
      {
        "familyName": "Furbach", 
        "givenName": "Ulrich", 
        "type": "Person"
      }, 
      {
        "familyName": "Kerber", 
        "givenName": "Manfred", 
        "type": "Person"
      }, 
      {
        "familyName": "Lau", 
        "givenName": "Kung-Kiu", 
        "type": "Person"
      }, 
      {
        "familyName": "Palamidessi", 
        "givenName": "Catuscia", 
        "type": "Person"
      }, 
      {
        "familyName": "Pereira", 
        "givenName": "Lu\u00eds Moniz", 
        "type": "Person"
      }, 
      {
        "familyName": "Sagiv", 
        "givenName": "Yehoshua", 
        "type": "Person"
      }, 
      {
        "familyName": "Stuckey", 
        "givenName": "Peter J.", 
        "type": "Person"
      }
    ], 
    "genre": "chapter", 
    "id": "sg:pub.10.1007/3-540-44957-4_85", 
    "inLanguage": "en", 
    "isAccessibleForFree": false, 
    "isPartOf": {
      "isbn": [
        "978-3-540-67797-0", 
        "978-3-540-44957-7"
      ], 
      "name": "Computational Logic \u2014 CL 2000", 
      "type": "Book"
    }, 
    "keywords": [
      "constraint logic programming language", 
      "logic programming language", 
      "efficient target code", 
      "first formal treatment", 
      "determinism declarations", 
      "CLP languages", 
      "programming language", 
      "target code", 
      "body literals", 
      "automatic initialization", 
      "higher-order functions", 
      "predicate definitions", 
      "mode declarations", 
      "such languages", 
      "type declarations", 
      "compiler", 
      "formal treatment", 
      "language", 
      "predicates", 
      "literals", 
      "order functions", 
      "checking", 
      "instantiation", 
      "algorithm", 
      "initialization", 
      "task", 
      "code", 
      "information", 
      "definition", 
      "detection", 
      "error", 
      "need", 
      "generation", 
      "Declaration", 
      "mode", 
      "HAL", 
      "types", 
      "function", 
      "variables", 
      "treatment", 
      "mercury"
    ], 
    "name": "Mode Checking in HAL", 
    "pagination": "1270-1284", 
    "productId": [
      {
        "name": "dimensions_id", 
        "type": "PropertyValue", 
        "value": [
          "pub.1028447914"
        ]
      }, 
      {
        "name": "doi", 
        "type": "PropertyValue", 
        "value": [
          "10.1007/3-540-44957-4_85"
        ]
      }
    ], 
    "publisher": {
      "name": "Springer Nature", 
      "type": "Organisation"
    }, 
    "sameAs": [
      "https://doi.org/10.1007/3-540-44957-4_85", 
      "https://app.dimensions.ai/details/publication/pub.1028447914"
    ], 
    "sdDataset": "chapters", 
    "sdDatePublished": "2022-05-20T07:46", 
    "sdLicense": "https://scigraph.springernature.com/explorer/license/", 
    "sdPublisher": {
      "name": "Springer Nature - SN SciGraph project", 
      "type": "Organization"
    }, 
    "sdSource": "s3://com-springernature-scigraph/baseset/20220519/entities/gbq_results/chapter/chapter_338.jsonl", 
    "type": "Chapter", 
    "url": "https://doi.org/10.1007/3-540-44957-4_85"
  }
]
 

Download the RDF metadata as:  json-ld nt turtle xml License info

HOW TO GET THIS DATA PROGRAMMATICALLY:

JSON-LD is a popular format for linked data which is fully compatible with JSON.

curl -H 'Accept: application/ld+json' 'https://scigraph.springernature.com/pub.10.1007/3-540-44957-4_85'

N-Triples is a line-based linked data format ideal for batch operations.

curl -H 'Accept: application/n-triples' 'https://scigraph.springernature.com/pub.10.1007/3-540-44957-4_85'

Turtle is a human-readable linked data format.

curl -H 'Accept: text/turtle' 'https://scigraph.springernature.com/pub.10.1007/3-540-44957-4_85'

RDF/XML is a standard XML format for linked data.

curl -H 'Accept: application/rdf+xml' 'https://scigraph.springernature.com/pub.10.1007/3-540-44957-4_85'


 

This table displays all metadata directly associated to this object as RDF triples.

165 TRIPLES      23 PREDICATES      66 URIs      59 LITERALS      7 BLANK NODES

Subject Predicate Object
1 sg:pub.10.1007/3-540-44957-4_85 schema:about anzsrc-for:08
2 anzsrc-for:0802
3 schema:author N40560c6edbbc42dc8cea396e5357a5e2
4 schema:datePublished 2000-12-15
5 schema:datePublishedReg 2000-12-15
6 schema:description Recent constraint logic programming (CLP) languages, such as HAL and Mercury, require type, mode and determinism declarations for predicates. This information allows the generation of efficient target code and the detection of many errors at compile-time. However, mode checking in such languages is difficult since the compiler is required to appropriately re-order literals in the predicate’s definition for each predicate mode declaration. The task is further complicated by the need to handle complex instantiations which interact with type declarations, higher order functions and predicates, and automatic initialization of solver variables. Here we give the first formal treatment of mode checking in strongly typed CLP languages which require reordering of clause body literals during mode checking. We also sketch the mode checking algorithms used in the HAL compiler.
7 schema:editor Nc46bff694bb64455be4cc71b4887318b
8 schema:genre chapter
9 schema:inLanguage en
10 schema:isAccessibleForFree false
11 schema:isPartOf N82d3b84c2b014945846478d66f0b0997
12 schema:keywords CLP languages
13 Declaration
14 HAL
15 algorithm
16 automatic initialization
17 body literals
18 checking
19 code
20 compiler
21 constraint logic programming language
22 definition
23 detection
24 determinism declarations
25 efficient target code
26 error
27 first formal treatment
28 formal treatment
29 function
30 generation
31 higher-order functions
32 information
33 initialization
34 instantiation
35 language
36 literals
37 logic programming language
38 mercury
39 mode
40 mode declarations
41 need
42 order functions
43 predicate definitions
44 predicates
45 programming language
46 such languages
47 target code
48 task
49 treatment
50 type declarations
51 types
52 variables
53 schema:name Mode Checking in HAL
54 schema:pagination 1270-1284
55 schema:productId N713900654edd4d288a9cd0c92fd158e7
56 N980fb5a1b1864f908d9c9bf0d9fd2fd2
57 schema:publisher Nce2c777e0f134802abee3575cb1b18eb
58 schema:sameAs https://app.dimensions.ai/details/publication/pub.1028447914
59 https://doi.org/10.1007/3-540-44957-4_85
60 schema:sdDatePublished 2022-05-20T07:46
61 schema:sdLicense https://scigraph.springernature.com/explorer/license/
62 schema:sdPublisher Ne59fee7452a24a5ea6fc3c569a4acdd1
63 schema:url https://doi.org/10.1007/3-540-44957-4_85
64 sgo:license sg:explorer/license/
65 sgo:sdDataset chapters
66 rdf:type schema:Chapter
67 N0a8ce26331f549e1be0cbfc486085c12 rdf:first sg:person.016110070307.54
68 rdf:rest N8416a174feb647f58e4e84693dfd9620
69 N0b5898cbfe154e5eb0d479358a81711f rdf:first N9f431c67094f4fa8bc4576fe36060da1
70 rdf:rest N8d73f38ce8bd4a6597fb31efddbaa1c7
71 N117adf7063904123b763e8c0ad6646de schema:familyName Palamidessi
72 schema:givenName Catuscia
73 rdf:type schema:Person
74 N1bfc6a449b354a32b49991b0a0d94d67 rdf:first N28a6467bf707449ba8cd93cc2e899824
75 rdf:rest rdf:nil
76 N23530488fa8742b5b131b886011f4e3a schema:familyName Furbach
77 schema:givenName Ulrich
78 rdf:type schema:Person
79 N28a6467bf707449ba8cd93cc2e899824 schema:familyName Stuckey
80 schema:givenName Peter J.
81 rdf:type schema:Person
82 N2cc3318e2ffa406a98b87a7f7da444f7 rdf:first Nf96b98623b3b49c1ae0b0b6831fae5f8
83 rdf:rest N6cc6706569424e4a8223da755a7d72af
84 N40560c6edbbc42dc8cea396e5357a5e2 rdf:first sg:person.016350443307.93
85 rdf:rest N5b95370459764b84ae755c200145a386
86 N41a3c12d8990470abee483580fb2f309 schema:familyName Lloyd
87 schema:givenName John
88 rdf:type schema:Person
89 N5b95370459764b84ae755c200145a386 rdf:first sg:person.012243374043.93
90 rdf:rest N0a8ce26331f549e1be0cbfc486085c12
91 N6886fb2b307a47c285233a473b34435d schema:familyName Lau
92 schema:givenName Kung-Kiu
93 rdf:type schema:Person
94 N6cc6706569424e4a8223da755a7d72af rdf:first Ne7b2e855f37c47b49dcc83ca4670ae77
95 rdf:rest N1bfc6a449b354a32b49991b0a0d94d67
96 N713900654edd4d288a9cd0c92fd158e7 schema:name doi
97 schema:value 10.1007/3-540-44957-4_85
98 rdf:type schema:PropertyValue
99 N82d3b84c2b014945846478d66f0b0997 schema:isbn 978-3-540-44957-7
100 978-3-540-67797-0
101 schema:name Computational Logic — CL 2000
102 rdf:type schema:Book
103 N8416a174feb647f58e4e84693dfd9620 rdf:first sg:person.014375607254.44
104 rdf:rest rdf:nil
105 N8d73f38ce8bd4a6597fb31efddbaa1c7 rdf:first N23530488fa8742b5b131b886011f4e3a
106 rdf:rest Ncf9a530b29714374839dccdaecd56751
107 N980fb5a1b1864f908d9c9bf0d9fd2fd2 schema:name dimensions_id
108 schema:value pub.1028447914
109 rdf:type schema:PropertyValue
110 N99cd08695051484e88dbfa70f7045c35 rdf:first N6886fb2b307a47c285233a473b34435d
111 rdf:rest Ne64fcda2a9604db3bdd2562c34e43f91
112 N9f431c67094f4fa8bc4576fe36060da1 schema:familyName Dahl
113 schema:givenName Veronica
114 rdf:type schema:Person
115 Nbf9502d8294b415fb40519d3acd9486e schema:familyName Kerber
116 schema:givenName Manfred
117 rdf:type schema:Person
118 Nc46bff694bb64455be4cc71b4887318b rdf:first N41a3c12d8990470abee483580fb2f309
119 rdf:rest N0b5898cbfe154e5eb0d479358a81711f
120 Nce2c777e0f134802abee3575cb1b18eb schema:name Springer Nature
121 rdf:type schema:Organisation
122 Ncf9a530b29714374839dccdaecd56751 rdf:first Nbf9502d8294b415fb40519d3acd9486e
123 rdf:rest N99cd08695051484e88dbfa70f7045c35
124 Ne59fee7452a24a5ea6fc3c569a4acdd1 schema:name Springer Nature - SN SciGraph project
125 rdf:type schema:Organization
126 Ne64fcda2a9604db3bdd2562c34e43f91 rdf:first N117adf7063904123b763e8c0ad6646de
127 rdf:rest N2cc3318e2ffa406a98b87a7f7da444f7
128 Ne7b2e855f37c47b49dcc83ca4670ae77 schema:familyName Sagiv
129 schema:givenName Yehoshua
130 rdf:type schema:Person
131 Nf96b98623b3b49c1ae0b0b6831fae5f8 schema:familyName Pereira
132 schema:givenName Luís Moniz
133 rdf:type schema:Person
134 anzsrc-for:08 schema:inDefinedTermSet anzsrc-for:
135 schema:name Information and Computing Sciences
136 rdf:type schema:DefinedTerm
137 anzsrc-for:0802 schema:inDefinedTermSet anzsrc-for:
138 schema:name Computation Theory and Mathematics
139 rdf:type schema:DefinedTerm
140 sg:person.012243374043.93 schema:affiliation grid-institutes:grid.1008.9
141 schema:familyName Stuckey
142 schema:givenName Peter J.
143 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.012243374043.93
144 rdf:type schema:Person
145 sg:person.014375607254.44 schema:affiliation grid-institutes:grid.1002.3
146 schema:familyName Marriott
147 schema:givenName Kim
148 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.014375607254.44
149 rdf:type schema:Person
150 sg:person.016110070307.54 schema:affiliation grid-institutes:grid.1002.3
151 schema:familyName Harvey
152 schema:givenName Warwick
153 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.016110070307.54
154 rdf:type schema:Person
155 sg:person.016350443307.93 schema:affiliation grid-institutes:grid.1002.3
156 schema:familyName de la Banda
157 schema:givenName María García
158 schema:sameAs https://app.dimensions.ai/discover/publication?and_facet_researcher=ur.016350443307.93
159 rdf:type schema:Person
160 grid-institutes:grid.1002.3 schema:alternateName Monash University, 3168, Clayton, Australia
161 schema:name Monash University, 3168, Clayton, Australia
162 rdf:type schema:Organization
163 grid-institutes:grid.1008.9 schema:alternateName University of Melbourne, 3152, Parkville, Australia
164 schema:name University of Melbourne, 3152, Parkville, Australia
165 rdf:type schema:Organization
 




Preview window. Press ESC to close (or click here)


...