{"id":{"repo_id":"unt","oai_identifier":"info:ark/67531/metadc3251"},"canonical_url":"https://search.dev.ndltd.org/etd/unt/info:ark/67531/metadc3251","repository":{"repo_id":"unt","name":"University of North Texas","base_url":"https://digital.library.unt.edu/oai/"},"display":{"title":"The Design and Implementation of a Prolog Parser Using Javacc","abstract":"Operatorless Prolog text is LL(1) in nature and any standard LL parser generator tool can be used to parse it. However, the Prolog text that conforms to the ISO Prolog standard allows the definition of dynamic operators. Since Prolog operators can be defined at run-time, operator symbols are not present in the grammar rules of the language. Unless the parser generator allows for some flexibility in the specification of the grammar rules, it is very difficult to generate a parser for such text. In this thesis we discuss the existing parsing methods and their modified versions to parse languages with dynamic operator capabilities. Implementation details of a parser using Javacc as a parser generator tool to parse standard Prolog text is provided. The output of the parser is an “Abstract Syntax Tree” that reflects the correct precedence and associativity rules among the various operators (static and dynamic) of the language. Empirical results are provided that show that a Prolog parser that is generated by the parser generator like Javacc is comparable in efficiency to a hand-coded parser.","abstract_html":"Operatorless Prolog text is LL(1) in nature and any standard LL parser generator tool can be used to parse it. However, the Prolog text that conforms to the ISO Prolog standard allows the definition of dynamic operators. Since Prolog operators can be defined at run-time, operator symbols are not present in the grammar rules of the language. Unless the parser generator allows for some flexibility in the specification of the grammar rules, it is very difficult to generate a parser for such text. In this thesis we discuss the existing parsing methods and their modified versions to parse languages with dynamic operator capabilities. Implementation details of a parser using Javacc as a parser generator tool to parse standard Prolog text is provided. The output of the parser is an “Abstract Syntax Tree” that reflects the correct precedence and associativity rules among the various operators (static and dynamic) of the language. Empirical results are provided that show that a Prolog parser that is generated by the parser generator like Javacc is comparable in efficiency to a hand-coded parser.","abstract_has_math":false,"creators":["Gupta, Pankaj"],"institution":"University of North Texas","degree_name":null,"degree_level":null,"degree_discipline":null,"degree_department":null,"school":null,"contributors":["Tarau, Paul","Mikler, Armin R.","Jacob, Roy T."],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2002,"date_issued":"2002-08","date_published":"2002-08","updated_at":"2026-07-24T05:34:52Z","subjects":["Prolog (Computer program language)","Parsing (Computer grammar)","prolog","dynamic operators","Javacc","parser","abstract syntax tree"],"languages":["English"],"rights":["Public","Copyright","Gupta, Pankaj","Copyright is held by the author, unless otherwise noted. All rights reserved."],"rights_urls":[],"identifier_entries":[{"key":"dc:identifier","label":"Identifier","values":["oclc: 50677135","https://digital.library.unt.edu/ark:/67531/metadc3251/","ark: ark:/67531/metadc3251"],"render_values":[{"text":"oclc: 50677135","href":null,"code":true},{"text":"https://digital.library.unt.edu/ark:/67531/metadc3251/","href":"https://digital.library.unt.edu/ark:/67531/metadc3251/","code":true},{"text":"ark: ark:/67531/metadc3251","href":null,"code":true}]}]},"links":{"outbound_url":"https://doi.org/10.12794/metadc3251","outbound_label":"DOI","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Tarau, Paul","Mikler, Armin R.","Jacob, Roy T."]},{"key":"dc:creator","label":"Author","values":["Gupta, Pankaj"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2002-08"]},{"key":"dc:publisher","label":"Institution","values":["University of North Texas"]},{"key":"dc:type","label":"Dc Type","values":["Thesis or Dissertation"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Prolog (Computer program language)","Parsing (Computer grammar)","prolog","dynamic operators","Javacc","parser","abstract syntax tree"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["English"]},{"key":"dc:rights","label":"Dc Rights","values":["Public","Copyright","Gupta, Pankaj","Copyright is held by the author, unless otherwise noted. All rights reserved."]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["oclc: 50677135","doi: 10.12794/metadc3251","https://digital.library.unt.edu/ark:/67531/metadc3251/","ark: ark:/67531/metadc3251"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Operatorless Prolog text is LL(1) in nature and any standard LL parser generator tool can be used to parse it. However, the Prolog text that conforms to the ISO Prolog standard allows the definition of dynamic operators. Since Prolog operators can be defined at run-time, operator symbols are not present in the grammar rules of the language. Unless the parser generator allows for some flexibility in the specification of the grammar rules, it is very difficult to generate a parser for such text. In this thesis we discuss the existing parsing methods and their modified versions to parse languages with dynamic operator capabilities. Implementation details of a parser using Javacc as a parser generator tool to parse standard Prolog text is provided. The output of the parser is an “Abstract Syntax Tree” that reflects the correct precedence and associativity rules among the various operators (static and dynamic) of the language. Empirical results are provided that show that a Prolog parser that is generated by the parser generator like Javacc is comparable in efficiency to a hand-coded parser."]},{"key":"dc:format","label":"Dc Format","values":["Text"]},{"key":"dc:title","label":"Title","values":["The Design and Implementation of a Prolog Parser Using Javacc"]}]}],"canonical_facts":{"dc:contributor":["Tarau, Paul","Mikler, Armin R.","Jacob, Roy T."],"dc:creator":["Gupta, Pankaj"],"dc:date":["2002-08"],"dc:description":["Operatorless Prolog text is LL(1) in nature and any standard LL parser generator tool can be used to parse it. However, the Prolog text that conforms to the ISO Prolog standard allows the definition of dynamic operators. Since Prolog operators can be defined at run-time, operator symbols are not present in the grammar rules of the language. Unless the parser generator allows for some flexibility in the specification of the grammar rules, it is very difficult to generate a parser for such text. In this thesis we discuss the existing parsing methods and their modified versions to parse languages with dynamic operator capabilities. Implementation details of a parser using Javacc as a parser generator tool to parse standard Prolog text is provided. The output of the parser is an “Abstract Syntax Tree” that reflects the correct precedence and associativity rules among the various operators (static and dynamic) of the language. Empirical results are provided that show that a Prolog parser that is generated by the parser generator like Javacc is comparable in efficiency to a hand-coded parser."],"dc:format":["Text"],"dc:identifier":["oclc: 50677135","doi: 10.12794/metadc3251","https://digital.library.unt.edu/ark:/67531/metadc3251/","ark: ark:/67531/metadc3251"],"dc:language":["English"],"dc:publisher":["University of North Texas"],"dc:rights":["Public","Copyright","Gupta, Pankaj","Copyright is held by the author, unless otherwise noted. All rights reserved."],"dc:subject":["Prolog (Computer program language)","Parsing (Computer grammar)","prolog","dynamic operators","Javacc","parser","abstract syntax tree"],"dc:title":["The Design and Implementation of a Prolog Parser Using Javacc"],"dc:type":["Thesis or Dissertation"]},"updated_at":"2026-07-24T05:34:52Z"}