Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/namin/scalogno
prototyping logic programming in Scala
https://github.com/namin/scalogno
logic-programming metaprogramming scala smt tabling
Last synced: 2 months ago
JSON representation
prototyping logic programming in Scala
- Host: GitHub
- URL: https://github.com/namin/scalogno
- Owner: namin
- License: mit
- Created: 2013-10-01T07:53:17.000Z (over 11 years ago)
- Default Branch: aplas
- Last Pushed: 2022-03-25T21:33:36.000Z (almost 3 years ago)
- Last Synced: 2024-10-11T21:47:30.630Z (3 months ago)
- Topics: logic-programming, metaprogramming, scala, smt, tabling
- Language: Scala
- Size: 235 KB
- Stars: 40
- Watchers: 8
- Forks: 9
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
scalogno
========Scalogno as presented in APLAS'19 ([PDF](https://namin.seas.harvard.edu/files/namin/files/scalogno.pdf)).
- [2.1 Relations as Functions](src/test/scala/scalogno/core.scala#L274)
- [2.1 edge example](src/test/scala/scalogno/core.scala#L281)
- [2.1 path def example](src/main/scala/scalogno/core.scala#L189)
- [2.1 path example](src/test/scala/scalogno/core.scala#L289)
- [2.2 Higher-Order Relations as Higher-Order Functions](src/test/scala/scalogno/core.scala#L299)
- [2.2 reflexive transitive closure](src/test/scala/scalogno/core.scala#L318)
- [2.3 Object-Oriented Encapsulation](src/main/scala/scalogno/core.scala#L186)
- [2.3 example](src/test/scala/scalogno/core.scala#L272)
- [3.1 Designing Logic Engines for Meta-Programming (Fig 1)](src/main/scala/scalogno/engine.scala)
- [3.3 path rule def example](src/test/scala/scalogno/core.scala#L336)
- [3.3 path example](src/test/scala/scalogno/core.scala#L347)
- [3.4 Clause Reification as Controlled Side Effect](src/main/scala/scalogno/meta.scala#L62)- [4 fib example](src/test/scala/scalogno/tabling.scala#L91)
- [4.2 Memoization with Symbolic State Transitions](src/main/scala/scalogno/tabling.scala)
- [4.3 Example: Tabled Graph Evaluation](src/test/scala/scalogno/tabling.scala#L133)
- [4.3 example](src/test/scala/scalogno/tabling.scala#L192)
- [4.4 Definite Clause Grammar (DFG)](src/test/scala/scalogno/tabling.scala#L6)
- [4.4 example](src/test/scala/scalogno/tabling.scala#L28)Beyond APLAS:
- the [all](https://github.com/namin/scalogno/tree/all) branch adds an SMT solver as a backend, and combines it with tabling too. Work remains to refactor the combination into composable modules, and ... find a killer app beyond shortest paths. :)