Skip to content

benfogg/CS_236

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS_236

BYU CS 236 Discrete Math Projects. Over the course of this class we built a Datalog Scanner, Parser, Relational Database, Datalog interpreter and then optimized the rule evaluation. More information can be found on https://faculty.cs.byu.edu/~barker/cs236/labs/labs.php Descriptions that are included below are taken verabutum from the class website. Projects build upon each other.

Data Scanner: Write a scanner that reads a sequence of characters from a text file, identifies the datalog language tokens found in the file, and outputs each token. (Project 1) https://faculty.cs.byu.edu/~barker/cs236/labs/lab1-extra.html

Data Parser: Write a parser that reads a datalog program from a text file, builds a data structure that represents the datalog program, and outputs the contents of the datalog program data structure.(Project 2) https://faculty.cs.byu.edu/~barker/cs236/labs/lab2-extra.html

The Relational Database: Write an interpreter that uses relational database operations to evaluate the queries in a Datalog Program. For this project, use only the facts to evaluate the queries. (The evaluation of rules will be added in the next project.) (Project 3) https://faculty.cs.byu.edu/~barker/cs236/labs/lab3-extra.html

The Datalog Interpreter: Add join and union operations to the relational database from the last project and use the new operations to evaluate the rules in a Datalog program. (Project 4) https://faculty.cs.byu.edu/~barker/cs236/labs/lab4-extra.html

Optimizing Rule Evaluation: Build the dependency graph for the rules in a Datalog program and use depth-first search on the graph to improve the evaluation of the rules. (Project 5) https://faculty.cs.byu.edu/~barker/cs236/labs/lab5-extra.html

About

BYU CS 236 Discrete Math Projects.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages