I've recently opened a SourceForge project called the 'GAPSE': GenerAl Purpose ScriptEngine. I haven't really put anything in it yet, but I have a very early prototype of it on my drive.
I'm writing a ScriptEngine for a MUD, but I wanted to keep it as general as possible, because I also have other uses in my mind... So perhaps we could take it up seriously now....
I'll start making some of my paper-scratch models available...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Looks cool, do you want to combine efforts? What did you have in mind for syntax, you mentioned OO without class declarations that sounds cool what would it look like ? Quick question, why are there 2 threads displayed ?
Charles
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Sure I'd like to combine efforts... that's kinda why I posted it :)
About the syntax, I was thinking of a C/C++ type of language, but if we want to make a general type of script engine, we may also require class definitions & stuff..
There's only 2 threads displayed, but there can be a much larger thread pool. The reason I chose to have multiple threads is because it was initially designed for a Multiplayer game... You don't want to have to wait for someone else's script to terminate before yours can begin....
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Ah ok. Sounds cool, should we join the GAPSE mailing list ? Ill post what alec had in mind
Ok, well what i have in mind could be split up into the following steps:
1. A good C++ parser generator - this part is done
2. An embeddable scripting language; the requirements for this would be:
- written in C++
- portable
- embeddable at the source level (i.e. no .so or .dll,
just get the sources, compile with your own project and voila !)
- for the syntax, i'd go for something like JavaScript - it's pretty
intuitive for the average C/C++/Java programmer, no need to
reinvent the wheel here
3. Bindings from the scripting language to a GUI toolkit (my current
choice goes to fltk (the Fast Light Toolkit - which uses the same
"compile all the stuff together" approach and it's 100% C++)
4. Whith these and by adding some extra C++ components one could build
a nice framework for developing IDEs of all kinds.
5. The Great IDE. My personal goal is to have a good IDE for hardware
design - i.e. the supported languages would be Verilog and VHDL.
This requires some components that are specific to such tools and
that must be written in C++. Te coolest thing would be if we can
find a framewrok architecture that's general enough to support any
kind of language through plugins written in either the scripting
language or C++. For instance, my view is that an editor component
that does just syntax highlighting is no longer cool enough. What
i'd like is an intelligent editor that keeps an in-memory image of
the project and updates it as you type the code (don't laugh, such
a thing already exists for Java - it signalls a misspelled
identifier as soon as you type the separator after it, aso).
For syntax, i dont like the notion of public and private so maybe an optional read-only tag ? like
int x : ro;
or do you want to use types at all ? do you want to make it <i>completely</i> OO , as in allow NO functions outside of classes, and just have a class main ? I would like to support overloading and default arguments maybe single inheritance, just throwing out ideas. Let me know what you think.
Charles
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hmm, maybe im focusing too much on the a new language. I really don't know enough about writing interpreters/compilers to build an engine per se. I might just try to build a language first. And maybe co create the engine in the process? :)
Charles
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I've recently opened a SourceForge project called the 'GAPSE': GenerAl Purpose ScriptEngine. I haven't really put anything in it yet, but I have a very early prototype of it on my drive.
I'm writing a ScriptEngine for a MUD, but I wanted to keep it as general as possible, because I also have other uses in my mind... So perhaps we could take it up seriously now....
I'll start making some of my paper-scratch models available...
Check this DataFlow diagram:
http://shirmanos.student.utwente.nl/~kramor/ScriptEngine%20DataFlows.jpg
All comments are welcome :D
Looks cool, do you want to combine efforts? What did you have in mind for syntax, you mentioned OO without class declarations that sounds cool what would it look like ? Quick question, why are there 2 threads displayed ?
Charles
Sure I'd like to combine efforts... that's kinda why I posted it :)
About the syntax, I was thinking of a C/C++ type of language, but if we want to make a general type of script engine, we may also require class definitions & stuff..
There's only 2 threads displayed, but there can be a much larger thread pool. The reason I chose to have multiple threads is because it was initially designed for a Multiplayer game... You don't want to have to wait for someone else's script to terminate before yours can begin....
Ah ok. Sounds cool, should we join the GAPSE mailing list ? Ill post what alec had in mind
Ok, well what i have in mind could be split up into the following steps:
1. A good C++ parser generator - this part is done
2. An embeddable scripting language; the requirements for this would be:
- written in C++
- portable
- embeddable at the source level (i.e. no .so or .dll,
just get the sources, compile with your own project and voila !)
- for the syntax, i'd go for something like JavaScript - it's pretty
intuitive for the average C/C++/Java programmer, no need to
reinvent the wheel here
3. Bindings from the scripting language to a GUI toolkit (my current
choice goes to fltk (the Fast Light Toolkit - which uses the same
"compile all the stuff together" approach and it's 100% C++)
4. Whith these and by adding some extra C++ components one could build
a nice framework for developing IDEs of all kinds.
5. The Great IDE. My personal goal is to have a good IDE for hardware
design - i.e. the supported languages would be Verilog and VHDL.
This requires some components that are specific to such tools and
that must be written in C++. Te coolest thing would be if we can
find a framewrok architecture that's general enough to support any
kind of language through plugins written in either the scripting
language or C++. For instance, my view is that an editor component
that does just syntax highlighting is no longer cool enough. What
i'd like is an intelligent editor that keeps an in-memory image of
the project and updates it as you type the code (don't laugh, such
a thing already exists for Java - it signalls a misspelled
identifier as soon as you type the separator after it, aso).
For syntax, i dont like the notion of public and private so maybe an optional read-only tag ? like
int x : ro;
or do you want to use types at all ? do you want to make it <i>completely</i> OO , as in allow NO functions outside of classes, and just have a class main ? I would like to support overloading and default arguments maybe single inheritance, just throwing out ideas. Let me know what you think.
Charles
Hmm, maybe im focusing too much on the a new language. I really don't know enough about writing interpreters/compilers to build an engine per se. I might just try to build a language first. And maybe co create the engine in the process? :)
Charles
Okies... I will put some work in setting up the GAPSE site / mailing list etc. etc....
Ok, i suggest moving this thread on the GAPSE Open discussion forum. I will post some more thoughts on the language/features there.
Alec.
The project page is: http://sourceforge.net/projects/gapse-engine/
Anyone who wants to be a Developer on the project, please mail me...