how would you start to make your own programming language.

Recommended Answers

All 40 Replies

Here's one link that might help you out: http://www.free2code.net/tutorials/programming/1/Creating_a_Programming_Language.php

And another:http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-cooltools.html

Were you trying to write a scripting language or an actual full blown language?

One thing I thought of that you'll need to consider, is your language just a wrapper for another one (aka parses into C and compiles the C verision) or would it actually compile your language straight into a machine code?

Let us know where you go with this! It's an interesting project. I sure there are some great books out there on Compiler Theory as well.

yeah i have thought of just making a full blown language i havent thought of the compiler options and i figured i should study up on how they make things like c++ so i recruited my bro who knows a little more about programming than me.

Have you made your own programming language yet?
I'm doing a computing project for A2 coursework and creating your own language is one of the suggested options.
Is yours stack-based?
If you created your own how did you create it?

Have you made your own programming language yet?
I'm doing a computing project for A2 coursework and creating your own language is one of the suggested options.
Is yours stack-based?
If you created your own how did you create it?

This thread is over 5 years old -- I doubt the OP will answer you.

so... what's so cool about ressurecting dead threads?

making them alive

commented: you're in for a ban. -4
commented: I am glad you are banned. Don't come back. -2

I also have ambition of making my own programming language one day eventually :)

I wish I could know someone who is a great machine code programming and who would share the same vision AND most importantly who'd be a good person and friend.

But the more I seek for that the more I understand how super impossible that is in this sad world...

commented: First step: start your own thread. -1

>But the more I seek for that the more I understand
>how super impossible that is in this sad world...
Then learn "great machine code programming" and be your own friend. Because with that attitude, your standards are too high for real friends.

learn assembly first and then think of making it

Hey, thank you for your reply!

"Because with that attitude, your standards are too high for real friends. "
Was this in negative context?(sorry my English is still pretty bad)
Cause the last thing I wanted to say is to have friends just to use them...
I just wanted to say, how great it would be to share vision with someone who is a good person and friend, instead of having bunch of businessmen who will just do their job and forget about you in no time, as its all functioning that way today.

And yes I would like to learn machine code, but I am so hesitant, I just don't know if that's gonna pay off and I don't want to spend about 5 years of my life on something that doesn't pay off, while for that time I could do something more useful :/

Also I'm not sure how to start learning machine code, is there some guide? :)

And yes I would like to learn machine code, but I am so hesitant, I just don't know if that's gonna pay off and I don't want to spend about 5 years of my life on something that doesn't pay off, while for that time I could do something more useful :/

Do people learn to play a musical instrument because they want to be paid off? Learning the skill itself is the pay off. If that isn't enough, I'd suggest learning something else.

If you're looking for the payday, research the job market and see what's most in demand.

I also have ambition of making my own programming language one day eventually

I wish I could know someone who is a great machine code programming and who would share the same vision AND most importantly who'd be a good person and friend.

But the more I seek for that the more I understand how super impossible that is in this sad world... we have something in commin hey.(RE: to VEGETA_DTX
)

Yes Niclan long time no see, and this topic as well :)

I was thinking lately about an ultimate programing language and I actually can't believe how every single thinking-session ends with "but that is SO possible! I can't understand why nobody so far actually made an ultimate, fully visual, easy-to use programming language".
I believe that making an ultimate, easy to use, visual, all-purpose programming language is absolutely negligibly harder than was the making of C++, for example.

Healthy logic says:
What do we have to have to make all-purpose programming language that can do ANYTHING?
-You have to have absolutely the lowest level of control!

Do we have a programming language that has the lowest level of control which we would eventually use for making this new easier programming language?
-Yes we do, its called Assembly(am I correct? please correct me if I'm wrong about anything).

So, here is what healthy logic says further - Make a good structure and a hierarchy of a programming language, and then just make a visual representation for each element. For example a brown frame is a group, a blue box is a variable, a green frame is a function, a red line between functions/groups is a transfer that happens between them. On each element you could double click and change its name or whatever(which would change only that particular copy) OR you could change that variable in the library window(located, for example, on the right side) and with that change all copies and instances of that variable.

Is that so bloody hard? I mean IT IS itself, but with today's technology and budget nobody ever tried to do that so far? I am absolutely amazed. If I ever somehow get a chance to gather a team of programmers and do something like this, I would, I know its a very ambitions especially for somebody who is actually a drop above "C++ newbie" rank, but I am like that, I achieved many things in my life thanks to "never give up"-philosophy and I don't plan on ever changing it, whether I succeed or fail, I'll sleep peacefully knowing that at least I TRIED.

Heck, look at the Unreal Developement Kit! A single video game company successfully made something like a prototype of what I am talking about, called - Kismet!
How come the whole world of programmers never did that too but just for all purposes? Is it the concurrency thing? like "everybody would be able to program then" - SO WHAT!? isn't that a bit selfish! Besides don't worry, you'll always be in front of those newbies for that certain knowledge of yours, knowledge never goes to waste ;)

Again, don't get me wrong, I know how ridiculously hard it could all get, but I just want to say that there are even way harder things to program in this world, like some 3D applications, yet they exist since long ago.
Like I've concluded many times: 3D has Maya, Max, XSI, Cinema4D etc...Web Design has Dreamweaver, Frontpage etc...but programing has one big NOTHING, its still at the numbers and letters level, yet its older than both 3D and Web design together...isn't that absurd?

Is that so bloody hard?

What an ignorant rant. Of course visual programming languages have been tried before. Some are even in active use, but for the most part they're awkward and less productive than the code based languages such that serious developers don't care enough to push for more. Not to mention the inherent difficulty in defining a generic visual language that's powerful enough to be useful without being so low level that you end up with the drag and drop version of assembly.

commented: haha, that's very similar to what I'm working on for recompilation purposes, but indeed your point is flawless. :) +4

^I believe there is lot of misunderstanding in your post Narue, also I really don't know what you have against me?

Why are those visual languages less productive? because they didn't have the low level control.
But can we really have a simple to use visual language with a lowest level of control - why not!?
Look at the Dreamweaver, you can do things in few clicks and if you think that its way to simple and not complex, you can always go into the HTML code itself and change it. If nothing else it at least speeds up the process of programming and keeps your mind focused easier, in a natural, visual matter.
All of those visual elements of that language I imagined could be fully editable code-wise as well! right click - "edit code" and that's it.

If that is possible for HTML, it is possible for assembly language or anything else for that matter, there is no obstacle besides concurrency and stingy knowledge, I strongly believe that.

But people will ALWAYS rather criticize ideas instead of supporting the ambition and spirit. Still I believe its just a matter of few years when somebody will finally start something like that.

I believe there is lot of misunderstanding in your post Narue

You believe a lot of things that simply aren't true, as evidenced by your (I'll say it again) ignorant rant. Apparently you took the word "ignorant" as an insult, which is stupid.

also I really don't know what you have against me?

I had nothing against you until you started getting whiny. Now I'm finding you childish and annoying.

Why are those visual languages less productive?

Because any reasonably competent programmer can churn out working code much quicker than dragging and dropping icons into a visual designer.

Look at the Dreamweaver

  1. Dreamweaver is a far cry from a general programming language.
  2. A good use of visual designers is for user interfaces because it's simpler than back end logic and there's a direct correlation between the designer elements and the resulting interface.

there is no obstacle besides concurrency and stingy knowledge, I strongly believe that.

Then you're too stubborn to listen to reason and I won't waste any more of my valuable time.

Still I believe its just a matter of few years when somebody will finally start something like that.

These things already exist, genius. Go do a search on google.

You believe a lot of things that simply aren't true, as evidenced by your (I'll say it again) ignorant rant. Apparently you took the word "ignorant" as an insult, which is stupid.


I had nothing against you until you started getting whiny. Now I'm finding you childish and annoying.


Because any reasonably competent programmer can churn out working code much quicker than dragging and dropping icons into a visual designer.

  1. Dreamweaver is a far cry from a general programming language.
  2. A good use of visual designers is for user interfaces because it's simpler than back end logic and there's a direct correlation between the designer elements and the resulting interface.

Then you're too stubborn to listen to reason and I won't waste any more of my valuable time.


These things already exist, genius. Go do a search on google.

My dear god! What an insolent person you are Narue, do you even hear yourself?
I think that any further discussion with somebody as insolent and as poor-mannered as you, especially for a female, would be ultimately ridiculous.

commented: Ignorance is curable. Stupid is permanent - and you've got a terminal case. +0

I'm currently majoring in computer science and taking a class in compiler design. From what I have learned so far, I can tell one thing for certain. Anyone who thinks creating a new programming language is so simple is highly naive and misinformed.

I'm currently majoring in computer science and taking a class in compiler design. From what I have learned so far, I can tell one thing for certain. Anyone who thinks creating a new programming language is so simple is highly naive and misinformed.

Or has a bag of the good blow and a lot of free time.

in order to be able to be able to develop your own programming language, one has to be an expert in programming itself. then one must know the concepts of compiler construction. i studied compiler construction, and i built a compiler for c- programming language. it was a hybrid, meaning it was meant to be interpreted by an interpreter like java is.

however building a compiler is one difficult task, and designing a language from scratch is even more difficult. one has to look at all the possibilities in a programming language.

I'm currently majoring in computer science and taking a class in compiler design. From what I have learned so far, I can tell one thing for certain. Anyone who thinks creating a new programming language is so simple is highly naive and misinformed.

It is simple. You're just failing to take the minimal cut of abstraction.

My dear god! What an insolent person you are Narue, do you even hear yourself?
I think that any further discussion with somebody as insolent and as poor-mannered as you, especially for a female, would be ultimately ridiculous.

"Especially for a female?"

Care to explain what you mean by that?

You're looking at the same problem, from WAY different perspectives.

Narue has a lot of experience, at a high level, with languages, while VEGETA-DTX has very little experience, but STILL has a valid point to make.

As the old quip says: (and I roughly paraphrase)
"The great achievements of man have been realized because we had giants standing high on the shoulders of other giants.

Software advancements have been described as the achievements of midgets, standing on the toes of other midgets."

;) ;)

We are moving closer to a graphic programming ability, but it's not nearly as easy as you might naively suspect. We need to keep wanting it, to keep the motivation to move it forward, at a higher level, imo.

Personally, if I were going to work on a language, I'd love to work with Google on Go! I've been a big fan of Ken Thompson and his various projects, for a long time:
He helped design the language B, he built and programmed a chess playing machine that became world chess computer champ, (prior to Deep Blue), and now he's working on Go!
which has concurrency, garbage collection, wickedly fast compile times, and OK speed, as well.

Absolutely nothing graphical about it (very constrained formatting of code is required), but that's no problem for me.

I have high hopes for Go! ;)

Someday, there will be a graphical language, good enough for general purpose programming, I'm sure. It isn't likely to happen in the next 5 years though.

The best way to start making a programming language is by learning a current language as much as you can. Then begin by making an interpreter. Making a compiler requires a lot of knowledge of machine code etc., but with an interpreter you can pretty much make your own machine code (called byte code) or just have it interpret on the fly. Making an interpreter is actually nowhere near as hard as making a compiler. For making an interpreter, as long as your a good programmer, you don't really need to know any techniques. I mean, it's better if you do, but it doesn't matter. I am working on my own language interpreter right now and yes, you have to be willing to spend a lot of time. But in terms of brain power required, not much.

Before you actually program anything, start out by mapping out what you want the language to be like. Then take programs from other languages and convert them to yours. This will help you find areas that you forgot to implement. After you've converted a lot of programs and found that your language is complete enough to meet your needs, then start designing the visual part. I would recommend making the visual part of the language completely separate from the actual code. What I mean is, don't try to interpret the graphics, just have the graphics represent certain code. If you are just interested in the graphical part of the language, then you can probably just take an existing language and make it graphical instead of designing your own from the ground up.

In my opinion, graphical languages are less capable. They are usually very efficient for the user, but not for the computer. Also they are usually designed for a specific area, not for everything, like C or C++. A good example would be Multimedia Fusion by Clickteam. That is pretty much a graphical language designed specifically for making games.

Anyway, my language is not graphical, but if you ever need help, feel free to contact me about making a language interpreter. Don't ask me compiler questions, I am not good enough at that yet.

Also look here: http://strlen.com/
That guy is a genius and could probably help too.

Ok. Why not. I'm bored. Here is a little more detail.

Here is some pseudo code of what a very simple interpreter might be like.

open a text file
store the text file into a string
replace all newline and caridge return characters with a space
now split that string by every space and store to an array
now make two functions. name one forward and one backward
the forward function reads the next command from the array and the
backward obvious
now make a giant switch statement to process the commands
now add your commands to the switch statement

That's the basic idea behind my language. Is it the best way to do it, maybe not, but it works and is very fast. Another pointer when designing an interpreter is DON'T make an interpreter using an interpreter. Use native code, like C or something. This will make your language a lot faster and less bloated.

i have thought of making my own programming, language, but then i look at the motivations of most of the languages that are in use today and why they were built. the languages, such as C++ and JAVA filled a gap. C++ provided object oriented design, while JAVA provided Object Oriented Design and portability and ease of use, removing most of the problems that were in c++.

then i think why should i waste time on something which will only be made because i want to make it, and not what i need, and at this stage i don't feel any need of making a new programming language. the current languages, do the job just fine for me.

@mustafaneguib: I understand that the need for a new language is minimal at this point because there is pretty much a language for every need. It would be nice though, in my opinion, if there was a language like .NET that compiled to native code for faster execution. Anyway, I don't design programming languages for a certain purpose, I just do it because I like designing programming languages (and like to brag about something most people wouldn't understand).

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.