OOPL

May. 1st, 2009 11:07 am
purplecat: Hand Drawn picture of a Toy Cat (mcapl)
So for the past two weeks I've had a visitor at work, who I shall call NT (since I'm so great at thinking up pseudonyms). He's a PhD student from the Netherlands who has invented a programming language for organisations of agents. I was in favour of calling this language Orwell (the original paper describes them as Orwellian Agents) but NT opted for the rather more prosaic OOPL (Organisation Oriented Programming Language). Somehow, last year at AAMAS, I managed to convince NT's second supervisor that my AIL framework was the obvious implementation platform for this language and we arranged for NT to come to Liverpool to implement it.

Cue much frantic manual writing; OK, some half-hearted manual writing which after about six months' effort resulted in me emailing 94 entirely unproof-read pages to the poor lamb, these representing about 3/4 of a manual. He was remarkably polite about this.

I have been asserting confidently in papers for at least a year that it is easier to implement a language interpreter in my framework than it is to attach a model checker to an existing language (the purpose of the framework being to let you model check your agent programs). So I really shouldn't have been as pleasantly surprised as I was that we managed to write an intepreter for OOPL inside a week. This week included us breaking Windows (so support had to scrub NT's account and do a fresh install) and my frantic attendance at the Automated Reasoning Workshop which was inconsiderately scheduled in Liverpool during the second two days of NT's stay.

We spent this week trying to get the model checker to work and write a parser. In both endeavours we suffered at the hands of other people's tools. The model checker, java pathfinder, is developed at NASA and they've broken it (fortunately, after some messing about, NT and I got our hands on an old version). Meanwhile I struggled to learn to use a parser generator - time taken to work out how to use the tool: two and a half days, time taken to actually write the parser: one day. TBH, if I'd known it was that easy to write parsers I'd have written some long ago rather than assuming they were horrible scary things best steered well clear of.

So all in all a busy but rewarding two weeks.
purplecat: Hand Drawn picture of a Toy Cat (jpf)
Things I learned today


  • The reason our code model checks sooo slowly, despite having a relatively conservative number of states, is that JPF (Java Pathfinder - a model checker) has an exponential slowdown based on the number of objects in the program. Our program has a lot of objects.

  • Fortunately the JPF developers intend to fix this by the end of the month when no less than 10 Google Summer of Code students start work on JPF related projects.

  • There is a funky looking search guidance script language we may be able to use, or failing that, base our own version on.

  • When our program loops the model checker should detect this. The fact it does not is suspicious. People who know more about this than I do are now prepared to look at my code and watch this non-loop-detecting behaviour in action.

  • If I'm lucky they will also explain about "Choice Generators".

  • If I'm really lucky I may understand the explanation.

  • Interesting things about simulating all the non-Java bits of your web application in Java so you can model check them with JPF.

  • Although I understand, in principle, that people exist who have never heard of a wireless network I was quite surprised to find one working the reception desk at the Fujitsu Campus in Silicon Valley.

purplecat: Hand Drawn picture of a Toy Cat (agents)
Several people now have told me these posts are entirely jibberish however I want to document the progress of our thought on the project. It's all under the cut but I don't suggest you read it unless you are actually interested in agents, programming and/or model checking.

And now the science bit )

On hearing that a programming language was named after her G. immediately asked if she could program in it. I baulked a bit since its a long way off being anything approaching a sensible teaching language. In the end I said she could once she could program, confident in the knowledge this is probably several years away. With some satisfaction, a few days later when we attended a Curriculum Morning a the school, B. pointed out the note that listed "programming" in the IT curriculum for the summer term this year...

Profile

purplecat: Hand Drawn picture of a Toy Cat (Default)
purplecat

September 2017

S M T W T F S
     1 2
3 4 5678 9
10 11 12 131415 16
171819 202122 23
24252627282930

Syndicate

RSS Atom

Tags

Style Credit

Expand Cut Tags

No cut tags