| | |
Making Your Own Programming Language
![]() |
Whoa! Pretty daunting task if you ask me. I have a hard enough time trying to learn a language nevermind think of all of the aspects to a language. Take a look at scheme, for example
I'll leave this one up to the experts. You're being forewarned though - this thread might end up being moved to the Computer Science or the Software Development forum.
I'll leave this one up to the experts. You're being forewarned though - this thread might end up being moved to the Computer Science or the Software Development forum. Ooh, sorry to double post, I just noticed you posted this in the Java forum. I think the closest thing to creating a new language would be something along the likes of AspectJ or Pizza.
AspectJ (http://eclipse.org/aspectj/)
a seamless aspect-oriented extension to the Java programming language
Basically, we all know that Java is, by nature, an object-oriented language. AspectJ allows it to be aspect-oriented, as well
Pizza (http://pizzacompiler.sourceforge.net/)
The Pizza language is an extension to Java with three new features:
- Generics (aka Parametric polymorphism)
- Function pointers (aka First-class functions)
- Class cases and pattern matching (aka Algebraic types)
AspectJ (http://eclipse.org/aspectj/)
a seamless aspect-oriented extension to the Java programming language
Basically, we all know that Java is, by nature, an object-oriented language. AspectJ allows it to be aspect-oriented, as well

Pizza (http://pizzacompiler.sourceforge.net/)
The Pizza language is an extension to Java with three new features:
- Generics (aka Parametric polymorphism)
- Function pointers (aka First-class functions)
- Class cases and pattern matching (aka Algebraic types)
AspectJ isn't so much a new language as an addon API to an existing language.
Designing an entirely new language is indeed a very tough task. You should first try to make interpreters and compilers for some existing languages, then start writing and revising a design document for your own language.
When you have that, create a formal language specification.
Only then should you start building first interpreters and then maybe compilers for it.
Plan on taking a year or more before you write the first line of code on that interpreter, probably 18 months at least before you execute the first line of code written in your new language.
And that's if you have a lot of experience in software design and computer science theory.
Designing an entirely new language is indeed a very tough task. You should first try to make interpreters and compilers for some existing languages, then start writing and revising a design document for your own language.
When you have that, create a formal language specification.
Only then should you start building first interpreters and then maybe compilers for it.
Plan on taking a year or more before you write the first line of code on that interpreter, probably 18 months at least before you execute the first line of code written in your new language.
And that's if you have a lot of experience in software design and computer science theory.
•
•
•
•
Originally Posted by jwenting
AspectJ isn't so much a new language as an addon API to an existing language.
I thought that delving into such extensions would be a good introduction to programming languages. Plus, we're in the Java forum so it seemed appropriate
hehe Sure it would be a good start, but as he wants to make a new language it's not what he's looking for 
Maybe he should look at Jython instead when looking at a language implementation in Java, which is a port of the Python compiler to Java (and they're in need of people as the project is really slow at the moment

Maybe he should look at Jython instead when looking at a language implementation in Java, which is a port of the Python compiler to Java (and they're in need of people as the project is really slow at the moment
•
•
Join Date: Oct 2004
Posts: 19
Reputation:
Solved Threads: 0
•
•
•
•
Originally Posted by jwenting
Sure it would be a good start, but as he wants to make a new language it's not what he's looking for
Maybe he should look at Jython instead when looking at a language implementation in Java, which is a port of the Python compiler to Java (and they're in need of people as the project is really slow at the moment
When you say "new language" what do you mean?
What level of a language? A high level language are not as complicated as they are tedious to design, with an effecient workforce. But trying to desing another C++ or lower would be extremely copmlicated if ya ask me. Once you do some poctdoctoral studies for computer engineering or computer science, then you may have an idea on how to start. maybe
Making your own programing languge might be intresting but what did you say to use jython?
PETA People for the Eating of Tasty Animals.
FireFox
Hijack This
Ad-Aware
Hijack this tutorial
Microsoft AntiSpyware
CompUchat
FireFox
Hijack This
Ad-Aware
Hijack this tutorial
Microsoft AntiSpyware
CompUchat
![]() |
Similar Threads
- how would you make your own programming language (Computer Science)
- What are the best programming language for Game Programming (Game Development)
- own programming language? (Computer Science)
- Coolest programming language? (IT Professionals' Lounge)
- Suggestions on what type of programming language would be best for the situation (Computer Science)
Other Threads in the Java Forum
- Previous Thread: loop within a loop
- Next Thread: Create folder in Http
| Thread Tools | Search this Thread |
911 addball addressbook android api append applet application apps array arrays automation binary bluetooth businessintelligence button card class client code collision component crashcourse css csv database eclipse ee error fractal free ftp game gis givemetehcodez graphics gui html ide image integer integration j2me japplet java javaarraylist javadoc javafx javaprojects jni jpanel julia jvm linked linux list loan machine map method methods migrate mobile netbeans objects oriented output phone physics printf problem program programming project projects radio recursion replaydirector reporting researchinmotion rotatetext scanner se server service set sms software sort sql string swing test textfield threads tree trolltech ubuntu utility windows






