[CVALE] Idea for a C Programming Project...TuxScribble
Landon Blake
lblake at ksninc.com
Fri Jun 16 13:03:01 PDT 2006
This book also comes highly recommended by others, and I have it on my
unofficial "list of books to buy."
Thanks Kristian.
-----Original Message-----
From: cvale-bounces at lists.fire2wire.com
[mailto:cvale-bounces at lists.fire2wire.com] On Behalf Of Kristian
Hoffmann
Sent: Thursday, June 15, 2006 2:47 PM
To: cvale at cvale.org
Subject: Re: [CVALE] Idea for a C Programming Project...TuxScribble
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_Too
ls
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
>
>
>
>
>
>
_______________________________________________
cvale mailing list
cvale at lists.fire2wire.com
http://lists.fire2wire.com/mailman/listinfo.cgi/cvale
More information about the cvale
mailing list