Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I have a variant of Datalog with an explicit model of time (like statelog or dedalus) and action atoms/external atoms from HEX (asp). Then I extract partial programs that provably use finite memory and construct finite state machines. Combined with a bit of runtime framework, I can compile to C which I actually run on arduino or lego ev3.


So the general area is robotics?

I didn't know about statelog and dedalus. How do you extract the partial programs? And how do you do the compilation to C?

If you don't mind me asking! I find the description of your work very interesting :)

Edit: Have you heard of HEX-MIL [1] or ILASP [2]? HEX-MIL is an ASP system that learns datalog programs and ILASP learns ASP programs:

[1] https://www.ijcai.org/Proceedings/2019/860

[2] http://ilasp.com/research


Usually something what I call a "decision core" is embedded in every interactive program. Deciding what to do with input. Sometimes this is just an if-else-tree, sometimes a statistical model, sometimes a logic program. Execution is done in an imperative fashion.

Usually on microcontrollers you don't have enough space to have a control system and a logic program. So I extend LP with IO and compile efficient code.

Partial programs are basically extracted using the Datalog research about parallelism and distribution over components. Queries evaluated in parallel/distribute can be compiled to separate programs. And if the program is bounded, through an abstract execution we can basically generate all possible extentions (parameterized) of the minimal model. Where the proof can not be obtained, we compile a small embedded deductive database.

I have to look at the stuff you've linked. Interesting and adjacent. Is the github in your profile an appropriate way to contact you? I'll shoot you an email in a few days.


>> Usually on microcontrollers you don't have enough space to have a control system and a logic program.

I should think so!

>> Partial programs are basically extracted using the Datalog research about parallelism and distribution over components.

I think I understand- it's a program transformation technique?

Yes, you can contact me via my github. You're very welcome to do so! :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: