Recursion Theory and Joy
by Manfred von Thun
Abstract: Joy is a functional programming language which is not based on the application of functions to arguments but on the composition of functions. Many topics from the theory of computability are particularly easy to handle within Joy. They include the parameterisation theorem, the recursion theorem and Rice's theorem. Since programs are data, it is possible to define a Y-combinator for recursion and several variants. It follows that there are self-reproducing and self-describing programs in Joy. Practical programs can be written without recursive definitions by using several general purpose recursion combinators which are more intuitive and more efficient than the classical ones.
I wrote an interpreter for a subset of Joy (in Oberon, btw) and as an unexpected side effect, I now understand continuations.
" Earth will survive, some environment will eventually stabilize, and some homo sapiens are likely to remain reproducing somewhere. "
First, the musical-chairs-with-weapons! Remember, whoever doesn't get a chair when the music stops dies. Oh, and you won't be needing your democratic and humanitarian ideals. OK, is everyone ready? No? Too bad!
I haven't checked out this new stuff yet, but I am about to. I listen to Ariza's older stuff -- there's a piece "Agoralalia" that is a particular favorite.
Population isn't the point of the analogy. The point is that GROWTH cannot continue forever. Growth in population, growth in energy used per person, growth in pizza franchises: as long as the growth has some physical correlative it CANNOT continue forever on a finite sphere. When exactly do you cornucopians think growth should end? How will that work?
"Personally, I just wi[sh] the aid given to Africa was more intelligent."
Personally, I just wish the Africans were more intelligent. Oh, and less violent. Especially the ones in the US.
"...a high-level garbage-collected language is a step too far..."
Why not a systems-level statically compiled typesafe garbage-collecting language? There is such a thing, you know. There is even a modern OS running on x86, all without any C at all. (Ugh! Pointer aliasing!) It is called Bluebottle. And -- you can skin the GUI by editing an XML file! Woohoo!
http://bluebottle.ethz.ch/
Polygon rendering is going to be overtaken by raytracing. Tracing eliminates the problem of occluding geometry, or "overdraw". Ceteris paribus, occlusion speeds up a tracer by ending computation on the occluded ray. Tracer threads will run very quickly on an architecture like Cell, where a thread can yield as soon as it requests a load from main to local memory. As long as a thread typically uses less memory than (local memsize)/n, where n is the number of threads (on that SPE) necessary so that by the time the other threads hit a memory access, yield, and come around again, the thread under consideration's memory request has finished, then the algorithm will be very efficient, because it will be as fast as if it were running out of the local store (like a cache) exclusively, but it will be able to trace immensely complicate pointerlinked structures in main memory. The threads are completely independent, of course.
Mail me if you want to see an mpeg of an experimental tracer running on x86. If you want a big movie, send me an ftp or ssh address where it can be uploaded.
Yes, I agree completely, except that C is a horrible language. Your arguments work perfectly, however, if you substitute "Oberon" for "C".
"Ask me about my cellular raytracer"
A Bluebottle port to the Cell would be ideal as far as I am concerned. Then, a functional language like Ocaml or Moby was wanted, it could be written in Oberon. I've got a software realtime raytracer running on Bluebottle (dual boot Linux/BB x86 box). Boy, would I like to port it to Cell. Of course the tracer could be converted to C++. But that would be ugly.
All of the monsters have been lulled to sleep with drugs and loud music - except for Glutamoto! What a monster!
For raytracing it would be perfect. The more threads tracing the better. I want one. 2 cores? 4 cores? How about n cores? This amp goes to n!
" Earth will survive, some environment will eventually stabilize, and some homo sapiens are likely to remain reproducing somewhere. " First, the musical-chairs-with-weapons! Remember, whoever doesn't get a chair when the music stops dies. Oh, and you won't be needing your democratic and humanitarian ideals. OK, is everyone ready? No? Too bad!
I haven't checked out this new stuff yet, but I am about to. I listen to Ariza's older stuff -- there's a piece "Agoralalia" that is a particular favorite.
Bush Pig: if you like you can help me out at majorityrights.com. Look at my old essays before deciding.
Population isn't the point of the analogy. The point is that GROWTH cannot continue forever. Growth in population, growth in energy used per person, growth in pizza franchises: as long as the growth has some physical correlative it CANNOT continue forever on a finite sphere. When exactly do you cornucopians think growth should end? How will that work?
"Personally, I just wi[sh] the aid given to Africa was more intelligent." Personally, I just wish the Africans were more intelligent. Oh, and less violent. Especially the ones in the US.
* Fast every other day.
Actually, Stormfront's moderators keep it mostly unsinged.
"...a high-level garbage-collected language is a step too far..." Why not a systems-level statically compiled typesafe garbage-collecting language? There is such a thing, you know. There is even a modern OS running on x86, all without any C at all. (Ugh! Pointer aliasing!) It is called Bluebottle. And -- you can skin the GUI by editing an XML file! Woohoo! http://bluebottle.ethz.ch/
Polygon rendering is going to be overtaken by raytracing. Tracing eliminates the problem of occluding geometry, or "overdraw". Ceteris paribus, occlusion speeds up a tracer by ending computation on the occluded ray. Tracer threads will run very quickly on an architecture like Cell, where a thread can yield as soon as it requests a load from main to local memory. As long as a thread typically uses less memory than (local memsize)/n, where n is the number of threads (on that SPE) necessary so that by the time the other threads hit a memory access, yield, and come around again, the thread under consideration's memory request has finished, then the algorithm will be very efficient, because it will be as fast as if it were running out of the local store (like a cache) exclusively, but it will be able to trace immensely complicate pointerlinked structures in main memory. The threads are completely independent, of course. Mail me if you want to see an mpeg of an experimental tracer running on x86. If you want a big movie, send me an ftp or ssh address where it can be uploaded.
Yes, I agree completely, except that C is a horrible language. Your arguments work perfectly, however, if you substitute "Oberon" for "C". "Ask me about my cellular raytracer"
A Bluebottle port to the Cell would be ideal as far as I am concerned. Then, a functional language like Ocaml or Moby was wanted, it could be written in Oberon. I've got a software realtime raytracer running on Bluebottle (dual boot Linux/BB x86 box). Boy, would I like to port it to Cell. Of course the tracer could be converted to C++. But that would be ugly.
Umm . . . yeah.
Three words: Molten Salt Breeder # http://www.google.com/search?q=molten+salt+breeder
It is good to see end-of-the-world issues get some attention. If "organized mass-murder" can be prevented by increasing the "quality of life" of the desperate, then all we have to do is keep growing the economy worldwide. "Smart growth", of course. If we want exponential growth to continue forever on a finite sphere, we'll have to be smart. Oh, wait. This is important: http://www.dieoff.org/ This is interesting: http://www.stormfront.org/forum/showthread.php?t=4 0432&highlight=linkola
This is brutal: http://www.geocities.com/mahabala_awake/baron.html