October 14, 2009, 7:22 pm
Ok, I admit: I didn’t do anything larger with Scala yet. One day after I announced my Scala project my boss started a new project of his own. And as always in academia him starting a new project is code for me getting loads of jobs that where introduced with the words: “This is the basic proof work out the details, please.”
And after a short interlude as a guest lecturer at my own university, don’t ask german bureaucracy far to scary to tell, I’m now back on track.
So expect Scala/Petrinet-posts from now on.
May 9, 2009, 5:27 pm
As previously stated, I’m going to post a good deal about my efforts learning Scala. I write code for 22 years now and most of the time I used some kind of functional language. Actually the first programming language I learned was (Common) Lisp, so I not only know how to use lambda-expressions, anonymous functions and manage to throw some Y-Combinators in here and there, I know first hand how to combine paradigms like object-oriented and functional.
“So what will this be all about then?” you might ask. “I’m more interested in the more involved features in the Scala-world”, I’d respond. The ones Martin Odersky never fails to mention in his talks like:
- real generic types, with proper co- and contravariance, not the crap Java people throw around.
- selftyping
- the ability to create new syntactic abstractions (not as powerful as Common Lisp Macros, I might add, but still seem to be very good).
- and case classes
- …
To really testdrive those features, I need a project which is really complicated. So a new twitter-client was out of the race. As a theoretical computer scientist working on petri nets, the choice was easy. For my daily work I often need a tool to work with them. And even though some students write programs for that purpose as part of there thesis, I’m often not that satisfied with those tools. Many of them contain evil hacks not the ones giving you 10x speed-up and are just hard to wrap your head around, but those rendering the tools useless some versions and/or bugfixes later.
As you might have guessed by now, the project will be petri net tool box. So this would be a good time to familiarise yourselves with petri nets. But don’t be scared I will give explanations with every post on source-code as well as petri nets. So you should be able to follow even if you don’t read up on it right now.
This time I will, in short, explain why petri nets are fun and why they seem like a good project for learning complex features of Scala.
- Even the most basic petri nets, so called Place-Transition-Nets (P/T-Nets) can be described in at least 4 different way, if you count the equivalence to vector replacement systems.
- There are several extensions to P/T-Nets, some turing complete. So as part of this project I might implement a full blown parallel programming language.
- There is pnml, a xml derivate, for saving petri nets. so Scalas capabilities handling xml will be in use to.
- Petri nets are an executable automaton model with a possible infinite number of states, which sometimes have to be examined. Enumerating those is a perfect opportunity for using streams and other lazy features of Scala.
- I think this suffices but I could go on for a while, so I’ll just add three dots at the end of this list …
Next in this series a posting containing source code.
April 29, 2009, 3:11 pm
I’m alive, male, 28 years old, part time freak, full time PhD student in (theoretical) computer science and (programming) language geek. The last three seem to be somewhat entangled, at least according to my girlfriend, and will probably make up the majority of the topics of what I post here.
After thinking long and hard what to blog about first, I decided to go with my efforts in learning Scala. In the next posts I will lay some groundwork for that. So look forward to that.
While all that I might give some opinions (and some are quite strong like my view on imperative programming) and I hope that you disagree with me and comment on it, as long as the comments are not of illegal content I, for now, promise to not delete them. Even if they are offending, to anyone including me. Let the flamewars begin.