[CVALE] Idea for a C Programming Project...TuxScribble
Kristian Hoffmann
khoff at fire2wire.com
Thu Jun 15 14:46:42 PDT 2006
If you're really serious about designing your own language, and
subsequently writing a compiler/interpreter, I strongly suggest reading
the infamous "red dragon book" [1].
Compilers: Principles, Techniques, and Tools
Aho, Sethil, and Ullman
ISBN: 0-201-10088-6
I took the course on compiler theory when I was at CSU Stanislaus. It was
definitely an eye opening and worthwhile experience. Save yourself the
trouble and become very familiar with lex and yacc (currently GNU flex and
GNU bison).
Good luck!
-Kristian
1 - http://en.wikipedia.org/wiki/Compilers:_Principles%2C_Techniques_and_Tools
On Thu, 15 Jun 2006, Landon Blake wrote:
> I've been learning tidbits of C programming here and there. My latest
> excursion with C involves writing a Python extension module. That got me
> to thinking about a C programming project that I would like to try. It
> is something that will give me an opportunity to learn the ins and outs
> of the language and become familiar with low-level programming.
>
>
>
> I want to create a new programming language for Linux.
>
>
>
> Now I know your probably thinking, "This guy must be crazy. Does he know
> what that entails?" I might be a little bit crazy, but I do have an idea
> of what's involved. I've learned some about compilers and interpreters,
> and the different types of languages. (I even bought a book about
> creating programming languages, though I've not read much of it...) I
> think I'm ready to give this a shot.
>
>
>
> So what type of language will I create? I want to create something that
> might actually be useful, in addition to providing me the learning
> experience. I want to design the type of programming language that I
> would have like to have found when I first migrated to Linux. The
> language will be named TuxScribble. It will be:
>
>
>
> Object-Oriented
>
> Statically Typed
>
> Interpreted (Not Compiled)
>
> Implemented in C
>
>
>
> What will make TuxScribble different from other programming languages
> available on Linux? I actually hope to model it on two other languages
> that I am familiar with, Java and Visual Basic. Now I know some of you
> cringed when I said "Visual Basic", but give me a chance to explain. The
> target user for TuxScribble would fit one of the following descriptions:
>
>
>
> [1] A "casual" programmer that recently migrated from Microsoft Windows
> to Linux. They're familiar with VBA and maybe Visual Basic, and are
> looking for similar option on Linux. These are people that like eye
> candy and who don't know much about low-level programming. (C
> programming really scares this type of person. Hey, it still scares me.)
> :]
>
>
>
> [2] A Linux user that would like an easy introduction to programming on
> Linux. This type of person doesn't have any previous programming
> experience, but wants to learn. Or they want a quick way to build some
> useful GUI applications.
>
>
>
> TuxScribble won't be the fastest language, but I will try to keep its
> memory footprint small. It won't have the support and large code base of
> established languages like Python. What qualities will it have that
> might make it an appealing alternative to existing languages?
>
>
>
> [1] It will be a purely object-oriented language with a very simple
> syntax. A very, very, simple syntax. In fact, all statements will take
> the form object.methodcall(). Even statements that just add two numbers.
> This should make the language very easy to learn.
>
>
>
> [2] A full featured IDE. Something like Eclipse, but scaled back
> quite-a-bit. I want a graphical program that includes all the tools
> needed to design in the language.
>
>
>
> [3] The language will integrate very tightly with the GTK libraries. I
> want users to follow the "Visual Basic Philosophy" for programming, in
> which you first build the GUI and then write the code that makes it
> work. I hope I can integrate Glade into my IDE. If not, I'll write a
> parser for GladeXML that will allow use of Glade with my IDE, but not a
> part of it.
>
>
>
> [4] The language will be well documented for beginning programmers. I
> will also document the actual inner workings of the language
> implementation itself, for others like me that are curious about that
> stuff.
>
>
>
> [5] The language will be extendable with the C programming language,
> much like Python. You'll be able to wrap any library of C functions and
> use these from TuxScribble.
>
>
>
> Let me know what you guys think of the concept. Remember, it is mostly a
> learning experience for me, but if you have some comments on how I might
> make it more usable, I'm listening. If I decide to go forward with this
> I could explain the obstacles I encounter and what I've accomplished at
> a few of the CVale meetings. That way we can all learn together!
>
>
>
> You never know, in 5 years you may find TuxScribble integrated into one
> of your favorite Linux applications.
>
>
>
> Landon
>
>
>
>
>
>
More information about the cvale
mailing list