|
From: Evenbit on 17 Feb 2006 20:16 For the last few days, I've been pondering the simularities between different languages and some of the things I like and dislike about these languages. Basically, my thoughts circle around this question: How would you go about designing an Ideal computer language from scratch? Since this is an assembly NG, I guess this translates to: How would you go about designing an Ideal assembly language (or perhaps, an Ideal high level assembler) from scratch? What are the most important elements to have in a language? What are some of the most troubling aspects of existing languages? Would your design center (at least partially) on avoiding these trouble spots? Would the design favour programmer productivity or processing efficiency? Of course, the list goes on... And, as one answers these questions, they invent their very own language. Nathan.
From: Chewy509 on 17 Feb 2006 21:34 Evenbit wrote: Hi Nathan, > For the last few days, I've been pondering the simularities between > different languages and some of the things I like and dislike about > these languages. > Basically, my thoughts circle around this question: > > How would you go about designing an Ideal computer language from > scratch? I would think about the things I like and dislike in other languages I know and have worked with... Personally for me, that's about 6x flavours of BASIC, C, Assembly (x86, AMD64, 6502/6510, and some 68K), Pascal (mainly Borland) and some PHP/Perl as well as windows scripting (vbscript). > Since this is an assembly NG, I guess this translates to: > > How would you go about designing an Ideal assembly language (or > perhaps, an Ideal high level assembler) from scratch? http://chewy509.atspace.com/b0.html > What are the most important elements to have in a language? Being most a low-level hobbyist, then solid control over the machine state is desirable. As well as support for most common programming methodologies (procedural, OOP, support for object files, linking with objects files created using another langauge/compiler). Support tools would also be a factor high on the list, eg integration into my perfered OS, IDE, toolchain, etc. > What are some of the most troubling aspects of existing languages? > Would your design center (at least partially) on avoiding these trouble > spots? The level of abstraction between the language and the machine, and by creating a machine dependant language, would resolve that issue. > Would the design favour programmer productivity or processing > efficiency? Since when they these two concepts been mutually exclusive? b0, since is machine dependant (AMD64 in it's case), provides the programmer the ability to focus on performance, while using a language that is easy to grasp... (well I think so at least) > Of course, the list goes on... And, as one answers these questions, > they invent their very own language. Again see: http://chewy509.atspace.com/b0.html -- Darran (aka Chewy509) brought to you by Google Groups!
From: sevagK on 18 Feb 2006 00:22 Evenbit wrote: > For the last few days, I've been pondering the simularities between > different languages and some of the things I like and dislike about > these languages. > Basically, my thoughts circle around this question: > > How would you go about designing an Ideal computer language from > scratch? I think I would go with something like a compiled form of Java without as much emphasis on OOP. Keep it clean and enforce a strict programming discipline. > Since this is an assembly NG, I guess this translates to: > How would you go about designing an Ideal assembly language (or > perhaps, an Ideal high level assembler) from scratch? There is no such thing! There are as many ideal assembly language designs as there are assembly programmers. Assemblers are fun to work with and my chosen tools for my hobby, but IMO, an "ideal" assembler has to either target a low-level dicipline (eg: GoAsm) or a high-level dicipline (eg: HLA). > What are the most important elements to have in a language? -Consistency. There should not be syntactical changes at unexpected places or lax rules on expressions and conventions. -Type checking. at 100% user control, overridable. Eg: have native "sized" types that accept any types of specific size, or have specific types (native or user defined). -Readability. Here is where HL control structures shine. Everything should be neatly stacked so that the beginning and end of a "section" of code are easy to find, along with all places that code can fall through. > What are some of the most troubling aspects of existing languages? > Would your design center (at least partially) on avoiding these trouble > spots? I suppose it would, though I'm not much of a language designer. My experiences lies in a couple of scripting engines: a simple "make" script processor and the Arayna IF game engine. For me, languages that are not strong on the "most important elements" or one's that don't target a specific programming discipline fall off the bottom of my list real quick. > Would the design favour programmer productivity or processing > efficiency? It would favour a compromise. > Of course, the list goes on... And, as one answers these questions, > they invent their very own language. > > Nathan. Our very own fictional language :) -sevag.k -=Kain=- www.geocities.com/kahlinor
From: ?a/b on 18 Feb 2006 02:37 On 17 Feb 2006 -0800, "Evenbit" <nbaker2328(a)charter.net> wrote: >For the last few days, I've been pondering the simularities between >different languages and some of the things I like and dislike about >these languages. >Basically, my thoughts circle around this question: > >How would you go about designing an Ideal computer language from >scratch? > >Since this is an assembly NG, I guess this translates to: > >How would you go about designing an Ideal assembly language (or >perhaps, an Ideal high level assembler) from scratch? i should think on the number of registers (?), the size of registers (32 bits), the operations among registers, how to operate on 16bits data and on 8bits data and how operate on arrays; how represent real numbers. then i should implement "#" as symbol for jumps and to build the language like that i have now >What are the most important elements to have in a language? it is "the easily to read" the power for make "to see" programming is "to see" it is not hide the assembly language is good because it is easy and if there is an error it is show soon >What are some of the most troubling aspects of existing languages? the difficult for catch errors >Would your design center (at least partially) on avoiding these trouble >spots? use assembly or implement all the memory of a program in "the heap" and then run a routine for check if there is some of out of bound write in the heap memory >Would the design favour programmer productivity or processing >efficiency? i don't know >Of course, the list goes on... And, as one answers these questions, >they invent their very own language. C language is where many people start for build languages >Nathan.
From: JGCASEY on 18 Feb 2006 04:12
Evenbit wrote: ... > What are the most important elements to have in a language? Enough people using it. > What are some of the most troubling aspects of existing languages? Too many of them. ... > Of course, the list goes on... And, as one answers these questions, > they invent their very own language. Yes, they create their very own language to add to the ever growing Tower of Babel of computer languages. We have enough languages already. The most unimaginative thing you can do once you learn a computer language is to write yet another one to add to the confusion. IMHO :-) -- JC |