Show simple item record

dc.identifier.urihttp://hdl.handle.net/11401/77818
dc.description.sponsorshipThis work is sponsored by the Stony Brook University Graduate School in compliance with the requirements for completion of degree.en_US
dc.formatMonograph
dc.format.mediumElectronic Resourceen_US
dc.language.isoen_US
dc.publisherThe Graduate School, Stony Brook University: Stony Brook, NY.
dc.typeDissertation
dcterms.abstractType systems are popular tools programmers use to write bug-free programs easily. In many cases, type systems also offer the benefit of theoretical guarantees with respect to the program's behavior; such statements are usually phrased in type-system slang as &quot; Well-typed programs can't go wrong&quot; . In the context of Prolog, two different treatments of types have been employed in various type systems. <italic>Descriptive</italic> (or regular) types, which are over-approximations of the success set of a program, characterize programs as well-typed based on the program's contents, in a way that everything true in the program is also well-typed. A common application of type systems with descriptive types is in <italic>termination analysis</italic>. On the other hand, <italic>prescriptive</italic> types are used to best describe legitimate ways of calling Prolog predicates, hence provide a better discrimination on well-typedness versus success/failure in Prolog. Prescriptively typed systems are most commonly used for helping users in debugging their programs. In this thesis we present the design and operational semantics of a new type system with parametric and subtyping polymorphism for Prolog in the context of prescriptive types, called P<subscript><:</subscript>. What distinguishes P<subscript><:</subscript> from other type systems proposed for Prolog, is that <italic>mode information</italica> is used along with the types of the predicates' arguments for ensuring well-typedness. In its initial design, P<subscript><:</subscript> uses <italic>zero-context</italic> mode information, and is extended to use <italic>type-mode</italic> information from any custom inferencer later on. We use <italic>Bounded Quantification</italic> in the form of <italic>Universal</italic> and <italic>Existential</italic> types to define a richer language of expressing type signatures. We also introduce the notion of <italic>annotations</italic> to type variables as a natural way to represent typings in P<subscript><:</subscript> , which allows us to express (sub)type checking using standard unification, and appropriate definitions for <italic>replacements</italic> and <italic>substitutions</italic>. Furthermore, we provide a well-typedness argument specifically tailored for Prolog programs, guaranteeing that for a given well-typed program-query pair, all answers inferred will be well-typed. Finally, we make P<subscript><:</subscript> easily used in practice with an inference algorithm for the types of program variables, in order to ensure well-typedness with minimal annotations in the program.
dcterms.available2017-09-26T16:52:24Z
dcterms.contributorWarren, Daviden_US
dcterms.contributorWarren, David Sen_US
dcterms.contributorKifer, Michaelen_US
dcterms.contributorLiu, Yanhongen_US
dcterms.contributorRamakrishnan, C.R.en_US
dcterms.contributorPapaspyrou, Nikolaos.en_US
dcterms.creatorHadjichristodoulou, Spyros
dcterms.dateAccepted2017-09-26T16:52:24Z
dcterms.dateSubmitted2017-09-26T16:52:24Z
dcterms.descriptionDepartment of Computer Science.en_US
dcterms.extent161 pg.en_US
dcterms.formatMonograph
dcterms.formatApplication/PDFen_US
dcterms.identifierHadjichristodoulou_grad.sunysb_0771E_11863.pdfen_US
dcterms.identifierhttp://hdl.handle.net/11401/77818
dcterms.issued2014-05-01
dcterms.languageen_US
dcterms.provenanceSubmitted by Jason Torre (fjason.torre@stonybrook.edu) on 2017-09-26T16:52:24Z No. of bitstreams: 1 Hadjichristodoulou_grad.sunysb_0771E_11863.pdf: 752892 bytes, checksum: c988c363d560e9b996c3c2e36d06fc41 (MD5)en
dcterms.provenanceMade available in DSpace on 2017-09-26T16:52:24Z (GMT). No. of bitstreams: 1 Hadjichristodoulou_grad.sunysb_0771E_11863.pdf: 752892 bytes, checksum: c988c363d560e9b996c3c2e36d06fc41 (MD5) Previous issue date: 2014-05-01en
dcterms.publisherThe Graduate School, Stony Brook University: Stony Brook, NY.
dcterms.subjectFormal Methods, Logic Programming, Programming Languages, Type Systems
dcterms.subjectComputer science
dcterms.titleMode-Sensitive Type Analysis for Prolog Programs
dcterms.typeDissertation


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record