These are some ideas I've had for a while, that I want to get down.
1) Move away from the linear string metaphor of program representation. Toward what exactly? One idea I've had is to something more resembling circuits and components. The idea is you'd wire together what basically amounts to a big dataflow graph, consisting of various primitive elements. The "pins" would carry dependent type information. Specifying the behavior of the components themselves is a bit more of a task.
You might be able to adopt concepts from signal analysis in EE here. Time-invariant signals are represented by pure functions, time-variant ones by Arrows. Monads (aka effects) and comonads (aka streams) are what muck everything up. Note: I need to write that article about how to explain Big Scary PL terms like monads and comonads in simpler terms.
[update]: You could probably build a really nifty programming environment with a multitouch interface. Also, I noticed alot of cryptographic algorithms are represented in this way.
2) Languages whose execution model is something other than first-order term rewriting or von Neumann-style execution. For example, theorem proving, term rewriting, algebraic normalization, convergence in a topology, manipulation of categories, and the like. This has all been done (I think), but for the most part, not in any nice way. I know there's a language like Pure, which does general term-rewriting.
Observation: a working example of this would, of course, be relational databases. Also datalog.
3) Languages with different notions of the data on which they operate, other than discrete values. For example, a language that can operate on probability distributions. Perhaps try compiling down to sets of equations, or representations like baysean networks and use the algebraic reduction-as-execution metaphor from above to attempt to derive the resulting distribution. Possible huge application: finance. Use this to compute expected outcomes of a particular strategy, or position. (I know Goldman Sachs does/did something like this; they told me about it back in 2008, and it's probably why they didn't need a bailout)
Thursday, July 28, 2011
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment