Translating a Linear Logic Programming Language into Java
There have been several proposals for logic programming language based on linear logic: Lolli [8], Lygon [7], LO [3], LinLog [2], Forum [11], HACL [10]. In these languages, it is possible to create and consume resources dynamically as logical formulas. The efficient handling of resource formulas is,...
Gespeichert in:
| Veröffentlicht in: | Electronic notes in theoretical computer science Jg. 30; H. 3; S. 20 - 45 |
|---|---|
| Hauptverfasser: | , |
| Format: | Journal Article |
| Sprache: | Englisch |
| Veröffentlicht: |
Elsevier B.V
2000
|
| ISSN: | 1571-0661, 1571-0661 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | There have been several proposals for logic programming language based on linear logic: Lolli [8], Lygon [7], LO [3], LinLog [2], Forum [11], HACL [10]. In these languages, it is possible to create and consume resources dynamically as logical formulas. The efficient handling of resource formulas is, therefore, an important issue in the implementation of these languages. Lolli, Lygon, and Forum are implemented as interpreter systems; Lolli is on SML and λProlog, Lygon is on Prolog, Forum is on SML, λProlog and Prolog. However, none of them have been implemented in Java.
In this paper, we describe the Prolog Café 1 system which translates a linear logic programming language called LLP to Java via the LLPAM [12] [5], an extension of the standard WAM [16] [1] for LLP. LLP is a superset of Prolog and a subset of Lolli. The main difference from the first implementation [4] is resource compilation. That is to say, resource formulas are compiled into closures which consist of a reference of compiled code and a set of bindings for free variables. Calling these resources is integrated with the ordinary predicate invocation.
Prolog Café is portable to any platform supporting Java and easily expandable with increasing Java's class libraries. In performance, on average, Prolog Café generate 2.2 times faster code for a set of classical Prolog benchmarks compared with jProlog. |
|---|---|
| AbstractList | There have been several proposals for logic programming language based on linear logic: Lolli [8], Lygon [7], LO [3], LinLog [2], Forum [11], HACL [10]. In these languages, it is possible to create and consume resources dynamically as logical formulas. The efficient handling of resource formulas is, therefore, an important issue in the implementation of these languages. Lolli, Lygon, and Forum are implemented as interpreter systems; Lolli is on SML and λProlog, Lygon is on Prolog, Forum is on SML, λProlog and Prolog. However, none of them have been implemented in Java.
In this paper, we describe the Prolog Café 1 system which translates a linear logic programming language called LLP to Java via the LLPAM [12] [5], an extension of the standard WAM [16] [1] for LLP. LLP is a superset of Prolog and a subset of Lolli. The main difference from the first implementation [4] is resource compilation. That is to say, resource formulas are compiled into closures which consist of a reference of compiled code and a set of bindings for free variables. Calling these resources is integrated with the ordinary predicate invocation.
Prolog Café is portable to any platform supporting Java and easily expandable with increasing Java's class libraries. In performance, on average, Prolog Café generate 2.2 times faster code for a set of classical Prolog benchmarks compared with jProlog. |
| Author | Tamura, Naoyuki Banbara, Mutsunori |
| Author_xml | – sequence: 1 givenname: Mutsunori surname: Banbara fullname: Banbara, Mutsunori organization: Department of Mathematics Nara National College of Technology Nara, JAPAN – sequence: 2 givenname: Naoyuki surname: Tamura fullname: Tamura, Naoyuki organization: Department of Computer and Systems Engineering Kobe University, Kobe, JAPAN |
| BookMark | eNqFkE9LAzEQxYNUsK1-BGGPeljN7G6SDR5Ein9ZULCewzSbLJE2kWQt-O3dtiLipacZ5vF7zHsTMvLBG0JOgV4ABX75CkxATjmHM8rOawoAeXFAxr_n0Z_9iExSeqe0rEHwMZHziD4tsXe-yzBrnDcYsyZ0TmcvMXQRV6uN1KDvPrEzmfN9yJ5wjcfk0OIymZOfOSVvd7fz2UPePN8_zm6aXBcCipzp2oIwlRSlLrVsgYFdmMK2RV0h16KUAFRaTrlAuWir2gpR17qSC1axSvNySq52vjqGlKKxSrt--Df4PqJbKqBq04LatqA2ERVlatuCKgaa_aM_olth_NrLXe84M0RbOxNV0s54bVoXje5VG9weh29ysnTi |
| CitedBy_id | crossref_primary_10_1016_S1571_0661_04_00155_0 |
| Cites_doi | 10.1016/0304-3975(96)00045-X 10.1006/inco.1994.1036 10.1007/BFb0024183 10.1007/BF03037173 10.1016/0304-3975(87)90045-4 10.1093/logcom/2.3.297 |
| ContentType | Journal Article |
| Copyright | 2000 Elsevier B.V. |
| Copyright_xml | – notice: 2000 Elsevier B.V. |
| DBID | 6I. AAFTH AAYXX CITATION |
| DOI | 10.1016/S1571-0661(05)80111-2 |
| DatabaseName | ScienceDirect Open Access Titles Elsevier:ScienceDirect:Open Access CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1571-0661 |
| EndPage | 45 |
| ExternalDocumentID | 10_1016_S1571_0661_05_80111_2 S1571066105801112 |
| GroupedDBID | --K --M 0R~ 1B1 1~5 29G 4.4 457 4G. 5GY 5VS 6I. 7-5 71M AABNK AACTN AAEDT AAEDW AAFTH AAIKJ AAKOC AALRI AAQFI AAQXK AAXUO ABFNM ABMAC ABWVN ACDAQ ACGFO ACGFS ACNNM ACRLP ACRPL ACXMD ADBBV ADEZE ADFGL ADMUD ADNMO ADVLN AEIPS AEKER AEXQZ AFTJW AFXIZ AGHFR AGQPQ AIEXJ AIKHN AITUG AJMQA AKRWK ALMA_UNASSIGNED_HOLDINGS AMRAJ ANKPU AOUOD ASPBG AVWKF AXJTR AZFZN BNPGV CS3 DU5 EBS EJD EO8 EO9 EP2 EP3 FDB FEDTE FGOYB FNPLU G-Q GBLVA HVGLF HZ~ IHE IXB J1W KOM KQ8 M41 M~E N9A O-L O9- OK1 OZT P2P R2- RIG ROL RPZ SDG SES SEW SPC SSH SSV SSW SSZ 9DU AAYWO AAYXX ACLOT ACVFH ADCNI AEUPX AFPUW AIGII AKBMS AKYEP CITATION ~HD |
| ID | FETCH-LOGICAL-c2712-5c8f17e4973c3c9d151fbe2fd284a6c7391109f6067a9bd48f7788c49b5454c63 |
| ISSN | 1571-0661 |
| IngestDate | Sat Nov 29 07:02:25 EST 2025 Tue Nov 18 21:20:40 EST 2025 Thu Apr 10 08:06:46 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | false |
| Issue | 3 |
| Language | English |
| License | http://creativecommons.org/licenses/by-nc-nd/3.0 |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c2712-5c8f17e4973c3c9d151fbe2fd284a6c7391109f6067a9bd48f7788c49b5454c63 |
| OpenAccessLink | https://dx.doi.org/10.1016/S1571-0661(05)80111-2 |
| PageCount | 26 |
| ParticipantIDs | crossref_citationtrail_10_1016_S1571_0661_05_80111_2 crossref_primary_10_1016_S1571_0661_05_80111_2 elsevier_sciencedirect_doi_10_1016_S1571_0661_05_80111_2 |
| PublicationCentury | 2000 |
| PublicationDate | 2000 2000-00-00 |
| PublicationDateYYYYMMDD | 2000-01-01 |
| PublicationDate_xml | – year: 2000 text: 2000 |
| PublicationDecade | 2000 |
| PublicationTitle | Electronic notes in theoretical computer science |
| PublicationYear | 2000 |
| Publisher | Elsevier B.V |
| Publisher_xml | – name: Elsevier B.V |
| References | Andreoli (BIB2) 1992; 2 Tamura, Kaneda (BIB12) Nov. 1996 J. S. Hodas, K. Watkins, N. Tamura, and K.-S. Kang. Efficient implementation of a linear logic programming language. In M. Banbara and N. Tamura. Compiling resources in a linear logic programming language. In Proceedings of Post-JICSLP'98 Workshop on Parallelism and Implementation Technology for Logic Programming Languages, June 1998. June 1998. Warren (BIB16) October 1983 Aït-Kaci (BIB1) 1991 Hodas, Miller (bib8) 1994; 110 . number 456 in Lecture Notes in Computer Science, pages 159-173. Springer, Aug. 1990. Miller (BIB11) 1996; 165 P. Tarau. BinProlog 5.40 User Guide. Technical Report 97-1, Département d'Informatique, Université de Moncton, Apr. 1997. Available from N. Tamura and Y. Kaneda. A compiler system of a linear logic programming language. In Andreoli, Pareschi (BIB3) 1991; 9 M. Banbara and N. Tamura. Java implementation of a linear logic programming language. In Proceedings of the 10th Exhibition and Symposium on Industrial Applications of Prolog, pages 56-63, Oct. 1997. Girard (BIB6) 1987; 50 Kobayashi, Yonezawa (bib10) 1994 pages 180-183, July 1997. J. Harland and D. Pym. The uniform proof-theoretic foundation of linear logic programming. In V. Saraswat and K. Ueda, editors, Proceedings of the International Logic Programming Symposium, pages 304-318, San Diego, California, Oct. 1991. P. Tarau and M. Boyer. Elementary Logic Programs. In P. Deransart and J. Maluszynski, editors 10.1016/S1571-0661(05)80111-2_bib4 10.1016/S1571-0661(05)80111-2_BIB15 10.1016/S1571-0661(05)80111-2_BIB14 Hodas (10.1016/S1571-0661(05)80111-2_bib8) 1994; 110 10.1016/S1571-0661(05)80111-2_BIB9 10.1016/S1571-0661(05)80111-2_BIB13 Girard (10.1016/S1571-0661(05)80111-2_BIB6) 1987; 50 Andreoli (10.1016/S1571-0661(05)80111-2_BIB3) 1991; 9 Kobayashi (10.1016/S1571-0661(05)80111-2_bib10) 1994 Aït-Kaci (10.1016/S1571-0661(05)80111-2_BIB1) 1991 Andreoli (10.1016/S1571-0661(05)80111-2_BIB2) 1992; 2 10.1016/S1571-0661(05)80111-2_bib7 10.1016/S1571-0661(05)80111-2_bib5 Miller (10.1016/S1571-0661(05)80111-2_BIB11) 1996; 165 Tamura (10.1016/S1571-0661(05)80111-2_BIB12) 1996 Warren (10.1016/S1571-0661(05)80111-2_BIB16) 1983 |
| References_xml | – volume: 165 start-page: 201 year: 1996 end-page: 232 ident: BIB11 article-title: A multiple-conclusion specification logic publication-title: Theoretical Computer Science – reference: P. Tarau. BinProlog 5.40 User Guide. Technical Report 97-1, Département d'Informatique, Université de Moncton, Apr. 1997. Available from – reference: M. Banbara and N. Tamura. Java implementation of a linear logic programming language. In Proceedings of the 10th Exhibition and Symposium on Industrial Applications of Prolog, pages 56-63, Oct. 1997. – volume: 110 start-page: 327 year: 1994 end-page: 365 ident: bib8 article-title: Logic programming in a fragment of intuitionistic linear logic publication-title: Information and Computation – reference: J. S. Hodas, K. Watkins, N. Tamura, and K.-S. Kang. Efficient implementation of a linear logic programming language. In – year: 1994 ident: bib10 publication-title: Typed higher-order concurrent linear logic programming – volume: 9 start-page: 445 year: 1991 end-page: 473 ident: BIB3 article-title: Linear objects: Logical processes with built-in inheritance publication-title: New Generation Computing – reference: N. Tamura and Y. Kaneda. A compiler system of a linear logic programming language. In – year: 1991 ident: BIB1 publication-title: Warren's Abstract Machine – reference: , June 1998. – reference: , number 456 in Lecture Notes in Computer Science, pages 159-173. Springer, Aug. 1990. – reference: . – reference: , pages 180-183, July 1997. – reference: M. Banbara and N. Tamura. Compiling resources in a linear logic programming language. In Proceedings of Post-JICSLP'98 Workshop on Parallelism and Implementation Technology for Logic Programming Languages, June 1998. – volume: 2 start-page: 297 year: 1992 end-page: 347 ident: BIB2 article-title: Logic programming with focusing proofs in linear logic publication-title: Journal of Logic and Computation – year: October 1983 ident: BIB16 article-title: An abstract Prolog instruction set publication-title: Technical Note 309, SRI International – volume: 50 start-page: 1 year: 1987 end-page: 102 ident: BIB6 article-title: Linear logic publication-title: Theoretical Computer Science – start-page: 33 year: Nov. 1996 end-page: 50 ident: BIB12 article-title: Extension of WAM for a linear logic programming language publication-title: Second Fuji International Workshop on Functional and Logic Programming – reference: P. Tarau and M. Boyer. Elementary Logic Programs. In P. Deransart and J. Maluszynski, editors, – reference: J. Harland and D. Pym. The uniform proof-theoretic foundation of linear logic programming. In V. Saraswat and K. Ueda, editors, Proceedings of the International Logic Programming Symposium, pages 304-318, San Diego, California, Oct. 1991. – volume: 165 start-page: 201 issue: 1 year: 1996 ident: 10.1016/S1571-0661(05)80111-2_BIB11 article-title: A multiple-conclusion specification logic publication-title: Theoretical Computer Science doi: 10.1016/0304-3975(96)00045-X – volume: 110 start-page: 327 issue: 2 year: 1994 ident: 10.1016/S1571-0661(05)80111-2_bib8 article-title: Logic programming in a fragment of intuitionistic linear logic publication-title: Information and Computation doi: 10.1006/inco.1994.1036 – year: 1994 ident: 10.1016/S1571-0661(05)80111-2_bib10 – start-page: 33 year: 1996 ident: 10.1016/S1571-0661(05)80111-2_BIB12 article-title: Extension of WAM for a linear logic programming language – ident: 10.1016/S1571-0661(05)80111-2_BIB13 – ident: 10.1016/S1571-0661(05)80111-2_BIB14 – year: 1991 ident: 10.1016/S1571-0661(05)80111-2_BIB1 – ident: 10.1016/S1571-0661(05)80111-2_bib7 – ident: 10.1016/S1571-0661(05)80111-2_bib5 – ident: 10.1016/S1571-0661(05)80111-2_bib4 – ident: 10.1016/S1571-0661(05)80111-2_BIB15 doi: 10.1007/BFb0024183 – volume: 9 start-page: 445 year: 1991 ident: 10.1016/S1571-0661(05)80111-2_BIB3 article-title: Linear objects: Logical processes with built-in inheritance publication-title: New Generation Computing doi: 10.1007/BF03037173 – volume: 50 start-page: 1 year: 1987 ident: 10.1016/S1571-0661(05)80111-2_BIB6 article-title: Linear logic publication-title: Theoretical Computer Science doi: 10.1016/0304-3975(87)90045-4 – year: 1983 ident: 10.1016/S1571-0661(05)80111-2_BIB16 article-title: An abstract Prolog instruction set – volume: 2 start-page: 297 issue: 3 year: 1992 ident: 10.1016/S1571-0661(05)80111-2_BIB2 article-title: Logic programming with focusing proofs in linear logic publication-title: Journal of Logic and Computation doi: 10.1093/logcom/2.3.297 – ident: 10.1016/S1571-0661(05)80111-2_BIB9 |
| SSID | ssj0038176 |
| Score | 1.3176062 |
| Snippet | There have been several proposals for logic programming language based on linear logic: Lolli [8], Lygon [7], LO [3], LinLog [2], Forum [11], HACL [10]. In... |
| SourceID | crossref elsevier |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 20 |
| Title | Translating a Linear Logic Programming Language into Java |
| URI | https://dx.doi.org/10.1016/S1571-0661(05)80111-2 |
| Volume | 30 |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVESC databaseName: Elsevier SD Freedom Collection Journals 2021 customDbUrl: eissn: 1571-0661 dateEnd: 20201231 omitProxy: false ssIdentifier: ssj0038176 issn: 1571-0661 databaseCode: AIEXJ dateStart: 19950101 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1La9wwEBZhk0MvbZM2NH0EHVJoCU5sSbuSjiGktDkshaawNyPLFixp7LC7Dum_74wlP7YJSXPoxSxaNDaej5nReOYbQg40yxJbaBHZsdVwQMlUZDiTEcusTITliXN-2IScTtVspr-HzwXLZpyALEt1e6uv_6uqYQ2Uja2zT1B3JxQW4DcoHa6gdrj-m-LR-2CFG3Yf4pkbqXpwpLLFrgAsxrpqOptCohIJI6rDc3Nj1pL0_XScslo1RVtrPY82DIM4DB60T4iW-PmiSbPWq2VdVot5nxy4qv1fU1P9ri_naxmHeGgeJdZJefr0o-KetWBTeTzADh8ayHjgaj2R5B0j7vMJPzrBEGrH449MgzNN2mbJNeLsvxxaV2bYVbChqBRFpfE4bcSk4LY3mYTj1Ihsnnw7m523_hspC5uetPb2fd_Xcf9Mn-Lx5_A890c0gyjl4iV5Ho4X9MTDYptsFOUOedGO7qDBkr8ieoASaqhHCW1QQgcooS1KKKKEIkpek59fzi5Ov0ZhikZkmcRBF1a5RBZCS2651TmEeC4rmMshMDETK7lG0lkHB1lpdJYL5aRUygqdQXAt7ITvklFZlcUbQrnmKk9ygwxIghmnc-1YIoyZOCvyLN4jon0TqQ0U8zjp5Ff6oCb2yFG37dpzrDy2QbWvOQ0w9wFgChB6eOvbp97rHXnm2Rcw6_aejFaLuvhAtuzNar5c7Afs_AGB_YHA |
| linkProvider | Elsevier |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Translating+a+Linear+Logic+Programming+Language+into+Java&rft.jtitle=Electronic+notes+in+theoretical+computer+science&rft.au=Banbara%2C+Mutsunori&rft.au=Tamura%2C+Naoyuki&rft.date=2000&rft.issn=1571-0661&rft.eissn=1571-0661&rft.volume=30&rft.issue=3&rft.spage=20&rft.epage=45&rft_id=info:doi/10.1016%2FS1571-0661%2805%2980111-2&rft.externalDBID=n%2Fa&rft.externalDocID=10_1016_S1571_0661_05_80111_2 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1571-0661&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1571-0661&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1571-0661&client=summon |