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)
Thank you very much for submitting a paper to ProMAS 2008.
We are pleased to let you know that your paper

ID: 113
Title: Programming Verifiable Heterogeneous Agent Systems

has been accepted.
purplecat: Hand Drawn picture of a Toy Cat (agents)
I just got three agents written in three different agent programming languages to talk to each and even to co-operate in order to achieve two goals.

*does a little my-agents-are-talking-to-each-other dance*

Which leaves me with a luxurious 8 days to write a paper about it before the deadline*.

* remember students, do as we say not as we do.
purplecat: Hand Drawn picture of a Toy Cat (Default)
Despite being full, the powers that be have managed squeeze another person into my office. Who promptly revealed his evil nature by introducing me to Desktop Tower Defence. I have just managed to complete the medium level without letting any creeps escape.

For those worried about the way we are spending your tax money, I hasten to add that I have also squished several bugs this week, implemented communication, and worked out how to get my agent threads to wait. Next week I will try to increase the expressivity of the property specification language. I also went to a workshop on how to get grants from EPSRC but I can see you may not think your taxes well spent in finding out how to get more of you tax money to spend.
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...

All Change

Sep. 19th, 2007 07:31 pm
purplecat: Hand Drawn picture of a Toy Cat (agents)
So today we had a productive project meeting in which we realised that large parts of our approach were probably wrong. While this doesn't mean all the work I've done in the past year designing and implementing the AIL agent programming language was pointless its going to be put to rather different uses than originally intended and in a much simplified form.

Meanwhile, if it works, the new solution we've got for the problem we are supposed to be addressing is going to be much simpler and far more elegant than AIL. I'm not terribly sorry to be losing AIL, despite the work, since it was beginning to look like something of an unweildy behemoth and the new solution is largely my idea but I do feel incredibly exhausted and, frankly, like I've drunk too much coffee (can't think what the cause of that could be).

Possibly foolishly I've said I will produce a prototype for the new solution by next Friday (this being a reflection of how simple it really will be if it works). Watch this space.
purplecat: Hand Drawn picture of a Toy Cat (agents)
Once again an AIL agent has convinced itself that it has picked something up. Only this time it convinced itself in Java rather than in Maude.

This is handy since it means I have something to report in our project meeting on wednesday

AIL Lives

Jun. 22nd, 2007 06:13 pm
purplecat: Hand Drawn picture of a Toy Cat (agents)
I spent the first 3 months on this job designing AIL * - a low level BDI programming languages. Then I wrote a paper about the design and got sent to Hawaii.

I have also spent some time implementing AIL using the Maude Rewriting Logic. Today the first ever AIL agent executed - it wanted to pick something up, it had a plan to pick something up, and it did so (meaning it changed its beliefs so it believed it picked something up, it didn't actually pick something up). You heard it here first folks!!!

* short for Agent Infrastructure Layer. Since one of the other languages we are interested in is an interpreter for AgentSpeak called Jason (which has a painting of the golden fleece as a logo) I briefly considered trying to change the name so the acronym was GRAIL and then going on an Arthurian/Mythology theme. However my boss's eyes rather glazed over at that point so I thought it best to leave well alone.

Profile

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

May 2025

S M T W T F S
    1 2 3
4 56789 10
11121314151617
18192021222324
25262728293031

Syndicate

RSS Atom

Tags

Style Credit

Expand Cut Tags

No cut tags