Skip to content

nuc134r/ExpertSystem

Repository files navigation

A basic IDE for a Prolog-inspired logic programming language. Semester project.

Of course it's can't be used for anything serious. Partly due to the same reasons Prolog can't be used for something serious and partly due to it's very weak if-powered core logic. And I'm not proud of that.

UI

User interface was made to look like Visual Studio's dark skin. Check out animations:

123

Logikek language

The task was to partly replicate Prolog language. Logikek language invented and is parsed with Sprache library.

Language consisits of three types of clauses.

Rule

For example we want to create a rule which declares that a good hobbie is the one which is fun.

GoodHobbie(X) : Fun(X);

X stands for an atom (like atom in Prolog). Atom is like a placeholder or a variable. Atoms must be one-letter.

Fact

Let's declare the fact that coding is fun.

Fun(Coding);

In the rule above we had an identical condition Fun(X). We also introduce a variable Coding and it's relation to Fun() clause.

Query

Now computer knows that a good hobbie is something fun and that coding is fun. So is coding a good hobbie? Let's find it out.

image

Here is a more complex example:

image

Put your attention to the output on the screenshot above. Logikek can find solutions if you leave an atom in a query statement just like Prolog.

About

A simple IDE with integrated Prolog-inspired logic programming language. Semester project.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages