I don't think anybody here has ever designed a grammar yet the prattlers here glibly dismiss its significance.
Probably, and probably not. The latter because it is a solved, and more importantly because other issues are far more problematic. (Examples: memory models, possibility of aliasing, fundamental concepts embodied in the language, optimisation)
So that's not a yes then is it? have you ever designed a programming language? have you ever designed
anything? I'm assuming the answer is "No".
It
isn't solved, a design isn't done until
the goals of the design are met, until the objectives defined for the grammar met, until then it is
not "done", do you really not understand what design is?
One of the reasons for this thread existing was simply to gather input in order to define those requirements and goals, but rather than participate you prefer to complain about "progress" and "code generation" things that cannot be progressed efficiently when the goals are still being defined.
Whether some phase of a project is or is not the largest source of challenges, is not what you were discussing, it is the order of the phases you've been lecturing me on.
Building a house generates many more problems than laying the foundations and laying the drainage system, yet if you were building a house you'd do the foundations
after building the house I suppose?
What would happen if you had constructed the first twenty floors of a large skyscraper when you discover you didn't design the foundations sufficiently well? let me tell you - you'd be fired as the project manager and replaced by someone who know what "design" means.
This is likely because the beginner books they've likely read never talk about it, they almost always use an existing language as their grammar.
Possibly.
If in order to complete a task you have to do either A or B, then start with the easier.
If in order to complete a task you have to do either A and B, then start with the more difficult.
This is
proof positive that you're a troll now. The order of phases in a project is not
dictated by their relative complexity, one cannot build a rocket and send men to the moon without doing other stuff first like deciding on a route, deciding the likely fuel consumption, safety of the crew, costs, support staffing, team roles etc etc.
You have to define the concepts/behaviour and grammar, and do the compilation and optimisation and code generation. You are starting with the the easiest. Shame.
Your trolling is nothing to do with language design at all, it really about your naive "understanding" of project planning and scheduling, you think you are an expert yet your own buffoonery above shows us otherwise.
There are a handful of people in this thread who know how to discuss this subject like adults, you are clearly not one of them.
I happen to have decades of experience as a software project manager, I've earned very large bonuses for delivering multi million dollar projects ahead of schedule, managing risk, maintaining progress, you have nothing to teach me about project management or programming language design.
Like so many of the blowhards here you think designing a programming language can be reduced to "coding" and if one isn't "coding" then they are fools, doomed to failure.
Coding, coding coding..I know all about coding, here's the
hand coded 8,500 lines recursive descent parser for PL/I subset G written in C on a DOS PC with no internet resources.
Or how would like to see the
4,500 line semantic analyzer? what? it's irrelevant? really? Oh well there it is anyway.
Perhaps the
symbol table manager and reference resolver is of some interest? here it is then sorry it's only 750 lines, I'll try harder next time!
Surely the
storage allocator is relevant? no? that too is a waste of time? oh well, for the record here it is, again it's only 700 lines, I am sorry about that.
Now your absolute
favorite part at last! yes the code generator ! whoopee ! here's the first part, the
abstract Pentium code generator this is 3,000 lines.
And finally the real deal, the stuff that separate the "men from the boys" as it were, the actual
instruction opcode generator, generates real binary instruction stream, another 3,000 lines.
Last but by no means least, the COFF output file generator itself, that's right, yes, it's true, code generators aren't enough, we really need to create an output file with a strict structure and format that a linker can understand,
so here it is.
Ooh, I almost forgot, for all those lovers of assembler here, this is the 1,200 line
80386 runtime (for MS-DOS) that got linked in to every build of a PL/I app.
To cap it all the proof of the pudding as they say!
This code ran on DOS.
Now please, pretty please with a cherry on top, stop trolling and let the adults here talk in peace.