Create a new programming language?
-
Ambiguity of identifiers would be a big concern for me. How would the system know what you meant by a container? Or where a statement started or ended without punctuation?
-
Member 8331185 wrote:
for every value in the statement Hello my name is john count the number of spaces
The problem with such a statement is that a parser would need to distinguish between specific commands and properties such as 'for every', 'count' or 'spaces' and the data that is to be processed, i. e. 'Hello my name is john'. If you made that data part slightly different, such as 'that I do not name here', it would become impossible to resolve. At the very least you must somehow mark the data part. Also you have to be very careful about what constitutes a key phrase that describes the operation. In the above example 'for every' seems an appropriate key phrase, but you could also phrase something like: Every time I press the key down button, move the cursor one line down. Here, 'every time' is a key phrase, making 'every' by itself ambiguous. So when we parse a phrase, we cannot just investigate each word individually, we must also watch for specific phrases of words that subtly changes the meaning. It's doable, but it's incredibly complex. Google for 'Siri' to find an advanced system that might be able to tackle such problems.
Member 8331185 wrote:
any idiot can walk up to a PC and provided they can read and write in the English language they should be able to begin programming
Looking at forums I have some serious doubts about the ability of 'some idiot' to write proper english. Hell, often *I* have trouble understanding what they are saying...
I've worked with an idiot who's command of the English language was fairly good. His capability to code was non-existant. I groaned every time this person was grouped in the same team I was placed in. That was because my productivity, and every other real programmer's productivity in the team would drop because he was in it. I never understood how year after year, he remained employed. So 8331185's comment is totally unbelievable to me.
-
HTML isn't a programming language. It isn't Turing complete, and thus can't be used to implement arbitrary algorithms.
True, but definitely a domain-specific language.
-
I was thinking more along the lines of the features added to C# like generics and Linq, or adding OOP to Pascal.
True, but note that languages like Smalltalk and LISP have managed to get along with very few of these extensions - a good minimal set allows easier extension. Consider generics - Smalltalk has no need for such a beast. Even control structures are implemented as messages in Smalltalk, with the pleasant side effect new control structures can be added that feel as natural as the built in ones. Of course, a decent implementation will optimise such constructs to hell and back to get decent performance, as pioneered by Strongtalk and Self.
-
I dig to befer: HTML - specific to the solution - web pages - but not the content. SQL - specific to databases but not to the data stored. Scripts - specific to the OS as a maximum but not the usage. I think you are confusing what the languages do - web, db, scripts - to what they are used for - banking, retail, pron.
Panic, Chaos, Destruction. My work here is done. Drink. Get drunk. Fall over - P O'H OK, I will win to day or my name isn't Ethel Crudacre! - DD Ethel Crudacre I cannot live by bread alone. Bacon and ketchup are needed as well. - Trollslayer Have a bit more patience with newbies. Of course some of them act dumb - they're often *students*, for heaven's sake - Terry Pratchett
I befer to dig, HTML - the domain of HTML was the creation of web pages, it was designed for that purpose. SQL - the domain is databases. OK its not a very good domain specific language, but still. Scripts - the domain is the requirement to script administration tasks (in the context I was referring to). In each case, the language is geared to achieving tasks in a particular area (domain). Those domains are not application-level domains, but they are still domains. Futher examples exist - ANT and MSBuild - an XML language designed to automate build scripts. Indeed XML can be viewed as designed for the creation of domain-specific languages. Additionally, many attempts to embed DSL's in existing languages occur - fluent interfaces for example. I'd recommend a perusal of Martin Fowler's new book Domain-Specific Languages for an overview of how important such things are in software architecture.
-
Windows give more info about your processor (for instance on Windows 7, you may open the
Control Panel->System
). Anyway Intel processors are AFAIK backward compatible so you may start with a machine code written for an older CPU.If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
[My articles]OK so I identified my specific processor name, it's a: Intel(R) Core(TM)2 Quad CPU Q9300 @ 2.50 GHz 2.50 GHz. Edit: Since my OS (operating system) is Windows Vista Ultimate I right-clicked "computer" on the start menu and found it.
-
You can do it. Probably the easiest language to write in machine code is FORTH, which (a) is very simple internally, and (b) is mostly written in itself: I think only something like three of its default words are machine code primitives. So if you can get the basic framework of the thing going, (handling the dictionary, getting the environment to work, etc.) and write the machine code words in it ("emit" is one of them, for example) writing the rest of it can be done in your FORTH environment itself. I actually did this at one point, just to see if I could: it turned out to be much easier than I thought it would be.
Could I lookup a programming language called, "Speedcoding," it was the first language and the first language to be made by machine code it was created by IBM Systems Inc., I'm going to try to see if I can download and find the programming language then study it.
-
Is there a way to create a programming language without using an existing programming language? or to create it from scratch or create it in machine/binary code or assembly code? Also some other questions that are optional that you may answer: - Is there a way for a programming language to be "all-purpose"? (for example this programming language can be used to make games, models, simple applications (like calculators) or anything and EVERYTHING you can imagine) - Is there a way for a programming language to be "self-sustained"? (for example you don't need more than one language like "Lua" to run a massive game like "World of Warcraft" or "Command and Conquer" or any of those games out there or this language does not need support of any kind to run) Any answers will be fully-appreciated. :) Regards, Brandon Proud Member of "The Code Project"
Oh, by the way just to let you'll know if you'll ever wonder, the programming language is gonna be called: U++ (you plus plus), yes I know there is already a an existing programming language with that name out there... Edit: It sounds awesome, Its' full form or full name is gonna be called Universe++ instead of Ultimate so that way Microsoft can't snitch on me :cool:.
-
Is there a way to create a programming language without using an existing programming language? or to create it from scratch or create it in machine/binary code or assembly code? Also some other questions that are optional that you may answer: - Is there a way for a programming language to be "all-purpose"? (for example this programming language can be used to make games, models, simple applications (like calculators) or anything and EVERYTHING you can imagine) - Is there a way for a programming language to be "self-sustained"? (for example you don't need more than one language like "Lua" to run a massive game like "World of Warcraft" or "Command and Conquer" or any of those games out there or this language does not need support of any kind to run) Any answers will be fully-appreciated. :) Regards, Brandon Proud Member of "The Code Project"
Brandon, A true all purposes programming language would be able to define itself. What we use today for high level languages cannot. Essentially we need a new definition/undertanding of programming languages. It needs to be both an object definition language and a procedural language AND allow to automatic storage and automatic communications. Essentially it needs to be a procedural programming language, a data encoding storing definition, and a communication protocol all in one. What we have now does not begin to come close. All the "new" languages today are just warmed over slight variations of the existing paradigm. What this real new language would be would be able to express any programming task or program as wells as be used to describe other things such as human languages... - Grant
-
Is there a way to create a programming language without using an existing programming language? or to create it from scratch or create it in machine/binary code or assembly code? Also some other questions that are optional that you may answer: - Is there a way for a programming language to be "all-purpose"? (for example this programming language can be used to make games, models, simple applications (like calculators) or anything and EVERYTHING you can imagine) - Is there a way for a programming language to be "self-sustained"? (for example you don't need more than one language like "Lua" to run a massive game like "World of Warcraft" or "Command and Conquer" or any of those games out there or this language does not need support of any kind to run) Any answers will be fully-appreciated. :) Regards, Brandon Proud Member of "The Code Project"
-
You can do it. Probably the easiest language to write in machine code is FORTH, which (a) is very simple internally, and (b) is mostly written in itself: I think only something like three of its default words are machine code primitives. So if you can get the basic framework of the thing going, (handling the dictionary, getting the environment to work, etc.) and write the machine code words in it ("emit" is one of them, for example) writing the rest of it can be done in your FORTH environment itself. I actually did this at one point, just to see if I could: it turned out to be much easier than I thought it would be.