This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-01-30
Channels
- # babashka (19)
- # beginners (87)
- # calva (11)
- # cider (6)
- # cljdoc (30)
- # clojure (84)
- # clojure-china (1)
- # clojure-dev (13)
- # clojure-europe (4)
- # clojure-france (1)
- # clojure-gamedev (1)
- # clojurescript (12)
- # core-async (1)
- # cursive (12)
- # data-oriented-programming (1)
- # defnpodcast (1)
- # emacs (9)
- # events (1)
- # fulcro (8)
- # graalvm (1)
- # introduce-yourself (1)
- # missionary (6)
- # music (1)
- # nextjournal (14)
- # off-topic (26)
- # portal (2)
- # re-frame (1)
- # releases (2)
- # shadow-cljs (13)
https://en.m.wikipedia.org/wiki/Value_numbering Is this what you're looking for? You're reminding me of something, but it's way back in my mind.
For some reason I don't understand the complete use of this. In particular the "De Bruijn Index". For me it simply looks like a stack-based language code of some kind of expressions where you expect that the "stack" would contain this number of arguments. Is this correct?
You don't really need this if you just want to read Lisp code, the evaluate it. But it could enable compiler optimizations that would be harder to implement otherwise.
I found that De Brujin graph is an Euler graph and can be used to shrink the source code. But I'm not familiar with the notation they use in wikipedia. It could be De Bruijn notation but even then it's not clear what goes where. So is this also meant to shrink the code some way? i.e. to match for code chunks that are the same?
In this vid the guy used the De Bruijn graph for DNA matching. It's basically a regex state machine that encodes a graph. And not any graph, Euler graph: https://www.youtube.com/watch?v=TNYZZKrjCSk
Yeah, De Bruijn is used a lot in bioinformatics :thumbsup:
Re: de bruijin indices being a weird stack language, there are optimized transformations of lambda terms to ski terms (avoids the term size explosion that the naive transform results in) that requires knowing the de bruijin index of each variable
https://git.sr.ht/~hiredman/lions/tree/master/item/src/com/manigfeald/comb.clj is an version of that in clojure
http://okmij.org/ftp/tagless-final/ski.pdf is the paper about it
I’m looking at this before coffee, and it took me a moment, but I just realized… De Bruijin indexing is analogous to skolemizing a logic expression.
Make that “roughly analogous” since variable indices change depending on their relative position
@U051N6TTC can I get this on a T shirt “De Bruijin indexing is analogous to skolemizing a logic expression”
@leif Following up on the Java compiler error messages thing - what universities/organizations would pay someone like me (enough to keep some lights on) to work on this? (Neither of the references panned out, unfortunately. Best I can tell there is no one actively working on this and my best reference is the code itself) It seems working for Oracle or something would be the default way, but there would be no guarantee I could actually work on this and I’d be subject to corporate whims
Is this the right chat? What is the topic?
I recall it being here in #off-topic since java compiler messages don't come up in clojure dev