
Refal programming language - networked
https://en.wikipedia.org/wiki/Refal
======
tasoeur
[Useless Programming Language Trivia] The built-in "Prout" function translates
directly to "fart" in french. But of course french people managed to come up
with a language named Coq so I guess things are even.

~~~
tel
I always heard that Coq was revenge for 'bit'.

------
liamzebedee
Weird. I was just reading the HN history of my uni [1], and a quite popular
Haskell-looking language they built that was centred on exactly that [2].

I've heard absolutely stunning reviews of the subject it was taught in,
Programming with Patterns.

[1]
[https://news.ycombinator.com/from?site=uts.edu.au](https://news.ycombinator.com/from?site=uts.edu.au)

[2] [https://bondi.it.uts.edu.au/](https://bondi.it.uts.edu.au/)

~~~
zdkl
Are there docs for Bondi available online? I'd love to take a look at the
design of it without DLing the tarball

~~~
liamzebedee
Yep! Basically everything has been deleted but it's on archive.org.

[1] "Pattern matching" introduction -
[https://web.archive.org/web/20091202232434/http://www-
staff....](https://web.archive.org/web/20091202232434/http://www-
staff.it.uts.edu.au/~cbj/patterns)

[2] "Programming with patterns" presentation -
[https://bondi.it.uts.edu.au/defun.pdf](https://bondi.it.uts.edu.au/defun.pdf)

[3] "Organizing the world’s structured information" a talk given to Google
about bondi - [https://web.archive.org/web/20090731102349/http://www-
staff....](https://web.archive.org/web/20090731102349/http://www-
staff.it.uts.edu.au/~cbj/patterns/13012009/techtalk.pdf) ... and the sample
files [https://web.archive.org/web/20120322185006/http://www-
staff....](https://web.archive.org/web/20120322185006/http://www-
staff.it.uts.edu.au/~cbj/patterns/13012009/)

[4] The bondi source.
[http://bondi.it.uts.edu.au/bondi-2.0/](http://bondi.it.uts.edu.au/bondi-2.0/)

------
zdkl
was interested, clicked through to the project homepage. Everything is in
russian :(

edit: some of the site is translated to english edit2: dead links everywhere,
I've found this page to explain further with some examples
[http://www.refal.net/english/xmlref_1.htm#1.%20Wanted:%20a%2...](http://www.refal.net/english/xmlref_1.htm#1.%20Wanted:%20a%20Metalanguage)

~~~
profquail
It's difficult to find resources about Refal in English, but you can find some
with a little digging. Here's a nice introduction presentation about Refal and
some use cases for it: [http://www.bcs.org/upload/pdf/intro-to-
refal-130314.pdf](http://www.bcs.org/upload/pdf/intro-to-refal-130314.pdf)

Try searching for papers/articles by Turchin (who invented Refal). Also, many
papers on _supercompilers_ or _supercompilation_ use Refal or a Refal-like
language, so they can be another good source of information. (Plus,
supercompilation is fascinating to learn about in general -- it's basically
using machine learning within the compiler to perform powerful optimizations.)

Additional resources:

* [http://pat.keldysh.ru/~roman/doc/Turchin/1980-Turchin--The_L...](http://pat.keldysh.ru/~roman/doc/Turchin/1980-Turchin--The_Language_REFAL--The_Theory_of_Compilation_and_Metasystem_Analysis.pdf)

* [http://refal.botik.ru/book/html/index.html](http://refal.botik.ru/book/html/index.html)

* [http://www.refal.org/doc/turchin/dag/dag.html](http://www.refal.org/doc/turchin/dag/dag.html)

* [http://rfp.botik.ru/rfp](http://rfp.botik.ru/rfp)

~~~
analognoise
Superoptimization is not machine learning - it's brute forcing a small problem
space to find patterns that can be implemented in compiler. Where did you get
that it was machine learning? Unless you consider all back propagation to be
'machine learning'?

~~~
profquail
Superoptimization is not the same thing as supercompilation.

