1 / 11

Path oriented Logic Programming Language

PathLP is a new programming language focusing on path-oriented logic programming, enabling the representation of models as code for efficient error detection and resolution. Designed with a syntax that supports query, constraint, and implementation in Prolog, PathLP enhances modeling capabilities and offers unique features like membership, subtype, and logic equality for robust programming functionalities.

gretchenj
Télécharger la présentation

Path oriented Logic Programming Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Path orientedLogic Programming Language Pathlp - Student: Igal Khitron. Advisors: Mira Balaban, Michael Kifer, Stony Brook University, NY, USA. Computer Science Department, Ben-Gurion University of the Negev.

  2. MOTIVATION • Models as program abstractions, could be huge. • Ability to write a model as a programming code. • To run queries about this code. • To find an exact place and description of error. • To fix and just recompile the code.

  3. SOLUTION • New Programming Language. • Model terms (intersection, closure, disjoint, singleton). • The language will support many types of models. • F-OML – F-LOGIC (Kifer and Lausen, 1989) basedObject Modeling Language. • Top layer of PathLP (only PathLP syntax). • PathLP as a regular Logic programming language.

  4. PATHLP SYNTAX • Path Expression as the main structure. • John.spouse.brother[?x • -3.a.8[collect(4, 5, ?y, ?_, ‘^^p’(3, a))] • ].sun[?y]. , Susan.friend sun ?x brother ?y spouse John Mary sister spouse sun brother ?x ?x sun friend Susan ?y ?y

  5. PATHLP SYNTAX – CONT’D • Type path expression. • person!spouse[person]{0..2} • Membership.Bob:male. • Subtype.female::person. • Logic equality. • Fact.John.spouse[Mary]. • Rule.?x.sonOf[?y] :- ?x.childOf[?y], ?x:male. • Query:?- ?x:person, ?x.ageof(2003)[?age], ?age>20.

  6. CONSTRAINTS • Describe forbidden states. • !- ?x.prop1[?y], ?y > 10. • System stability checkprocess. • All deviations are printed. • Cardinality constraints. {3..*}

  7. IMPLEMENTATION • Prolog as Logic language platform. • Problem: reasoning order. • Tabling prolog. • Memoization. • Infinite loops avoidance. • Left Recursion. • XSB (David Warren and others, including Kifer). • 3-valued logic (true, undefined, false). • Prolog as ultimate compiler language – DCG. 0.06 millisec 0.01 millisec

  8. Full Linux KDE working environment Action Shell Interpreter

  9. TESTS • Regular checks. • Huge test case. • University CS Linux file system part (O:) • – 200,000 facts (about 15 for each file). • Name, size, permissions... • Path and last change as lists. • Type expressions, rules, constraints and queries about the file • system correctness. ?- file(?x).inode[?i], file(?y).inode[?i], ?x < ?y. !- ?x:filetype, ?x.name[?name], \ \+ ?x.fullpath[[?name|?]]. ?x:int :- integer(?x)@_prolog, ?x >= 0. filetype!size[int]{1..1}. 'regular file'::plain. 'regular empty file'::plain. plain::filetype. 'symbolic link'::filetype.

  10. PROJECT FEATURES • All Prolog and XSB abilities. • Linux executables. • Multifile. • Full preprocessor: #define, #include, #if, #ifdef, #eval, #exec ... • Improved list library. Difference and infinite lists can be treated. • Special _size property - counts all outgoing edges of the same kind. • Command line program (with history) and multiply arguments.

  11. SUMMARY • This works, but it’s not enough. • We’re going to develop the PathLP. • (For example, module spaces or libraries support.) • We’ll start with F-OML building. • We’ll rest on our laurels. • PathLP domain: pathlp.sf.net . • Project site: www.cs.bgu.ac.il/~khitron/bgu_pathlp .

More Related