I've admired Smalltalk from afar (like, from MacApp frameworks and Python) for a long while, and I've decided to take the plunge. I want to implement a BDI Agent framework (Belief/Desire/Intention) that will enable users to spit out PROMELA code (the process description language of the SPIN model checker) to verify certain properties of their agents / agent architecture.
In the past, I've done this by writing a "little language" and an interpreter for the language.
I'm not sure of the "right" way to do this in Smalltalk. I guess part of my question is "Is there a set of lexers/parsers that I can use (or subclass) to parse my little language - which mightn't look anything like Smalltalk?" or do I have to write my own?
The second part of my question is "What's the ST way of dealing with little languages. Do you just build editors/inspectors instead?"
Lastly (!) would you suggest that I start in MVC or Morphic? I don't know if I'll need all the clever Morphic stuff, and the MVC paradigm is appealing to me, but from what I read of the docs, the experts suggest that Morphic is the way to go....
Thanks for you help, and for Sqeak
cheers
Chris
Dr. Chris Wright Deputy Director, Intensive Care Unit. Monash Medical Centre, VIC Australia
Chris WRIGHT wrote:
I've admired Smalltalk from afar (like, from MacApp frameworks and Python) for a long while, and I've decided to take the plunge. I want to implement a BDI Agent framework (Belief/Desire/Intention) that will enable users to spit out PROMELA code (the process description language of the SPIN model checker) to verify certain properties of their agents / agent architecture.
In the past, I've done this by writing a "little language" and an interpreter for the language.
I'm not sure of the "right" way to do this in Smalltalk. I guess part of my question is "Is there a set of lexers/parsers that I can use (or subclass) to parse my little language - which mightn't look
anything like Smalltalk?" or do I have to write my own?
might i be slightly blasphemous here and suggest that you use yacc instead? it's a language that exists and thrives on the challenges of parsing stuff. Gnu Smalltalk is parsed using it.
Michael.
squeak-dev@lists.squeakfoundation.org