Thanks everyone for your interest.
This is a graphical / visual language, like LabView, not a textual language like C.
It's not a whim, I've been thinking and working on this on and off for 25 years, like I said.
What language will you be creating your language in?
Are you planning to make the language compiled or interpreted?
It will be self-hosted (written in itself).
I'll use C for bootstrapping it, and as a target language for translation.
C is fast, capable, simple, and portable.
It will need an interpreter, and later a compiler (translate into C).
There are not enough Programming Languages already?
How many visual logic languages can you find? I see one paper, it is not the same as what I have in mind although there are some common ideas.
"Creating best.." .. how about creating _a_, first
Programing languages are something that require A LOT of work before they are useable and better than the already long existing, heavily tested alternatives.
Yeah I'm ambitious. That post subject is partly joking, partly serious. It might not turn to be the absolute best
Or, it might.
I did create various languages, interpreters and compilers, and have spent 25 years designing this AMPS language, on and off.
New high-level languages with clean, mathematical/logic syntax & semantics are fun!
http://dtai.cs.kuleuven.be/CHR/
Thanks _wb_, I will read your PhD, hope I can understand it! If not I will ask. I really appreciate any help, especially to share and review ideas.
Aw c'mon guys, that's not the right attitude! Projects like this are what makes this community so much fun!
Dredd, I hope you have a lot of fun going after this and stick with it. You'll certainly learn a lot!
I'm just gonna give you one requirement ... you have to make this new programming language, on a Pandora
Ah, and document your work.
Thanks
Maybe I'll try to make it on the Pandora but that is difficult. I still almost can't believe that _wb_ wrote microbes on his Pandora keyboard!
I have been lazy about documenting my work so thanks, that's a good reminder.
a functional programming language implemented in javascript! all variables have to be accessed by database-calls.
that sounds like a different project (or a crazy joke) good luck!
Always nice to read of new programming languages. Any specific ideas of the type of language you're making? Paradigm? Typing? Special features? Bindings to other languages? Interpreted/compiled? Maybe compile using LLVM? So many possibilities
Thanks B-ZaR, LLVM might be a good basis for a compiler. I am planning to translate to portable C code.
The paradigms I'm focusing on are visual, logic, modular, flow-based. Internal and external modules could be written in other languages. It is very expressive, flexible and concise, and the form is close to the meaning. It is based I hope on a clear understanding of basic mathematics.
For example, we can attach zero, one or many nodes to each side of a "sum" op. This single type of operator can do addition or subtraction, or any combination of such.
There is no need for a separate subtraction operator or equals sign. In text, x y + z means z = x + y and also x = z - y , y = z - x.
x + means x = 0. x y + means x = -y. x y + a b c means x + y = a + b + c, or e.g. a = x + y - b - c. These are best drawn as diagrams, not written in text form.
Similarly a single * operator serves for multiplication and division.
A single ^ operator with three ports serves for pow(), log(), sqrt(), etc. A single tri op with four ports can perform sin, cos, asn, acos, hypot, etc.
The single "disjoint union" operator is a basis for many set theoretic operators, such as "union", "intersection". This is similar to +, and might be merged with it. * corresponds to a multi-variate cartesian product.
A single "d" operator is sufficient basis for differential equations.
So with 5 basic operators + * ^ tri d we can express relations in arithmetic, set theory, and calculus.
We can define new ops with a graphical form, like lambda.
I have some ideas on structures and tables, how to manipulate lists and strings, and how to integrate processes and channels for flow-based processing and real-time work (such as games).
I'll write this up with some diagrams so it makes more sense. Hopefully I did not come across totally crazy in the above.
- Sam