C++ Grandmaster Certification
-
Has anyone else heard of this[^]? The CPPGM Foundation (whoever they are) are offering a free C++ Grandmaster Certification. Participants will produce a fully compliant C++11 tool chain for 64bit Linux including compiler, assembler, linker, c library & full stl built without any third party dependencies but without any optimisation. The documentation for first assignment has been posted to the site as a sample and actually looks pretty good. They supply a test suite that your code must pass, a compiled exe that meets the requirements and some general ideas about a possible design. One of my colleagues (young, single & without children) is going to have a go. They estimate 12-18 months to complete at about 10 hours a week which is roughly 5 months at 40 hours a week. I don't think I could get anywhere near that amount of work done in double that time. The other catch - they ask you to agree to not publish your code anywhere else.
The funny thing is that I could actually do that, although it would take a lot longer than they specify to do it properly. The C library and stl I already have most of, the C++11 parser and the compiler front end I know where I would start from and how that would work and the assembler I could put together from what I'm working on at the moment but I have absolutely no interest in working for them for free or in tying my work to 64bit Linux or even at the moment to specifically C++11. I will not be taking up their challenge although I will be interested to see how the winner does it.
"The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)
-
Has anyone else heard of this[^]? The CPPGM Foundation (whoever they are) are offering a free C++ Grandmaster Certification. Participants will produce a fully compliant C++11 tool chain for 64bit Linux including compiler, assembler, linker, c library & full stl built without any third party dependencies but without any optimisation. The documentation for first assignment has been posted to the site as a sample and actually looks pretty good. They supply a test suite that your code must pass, a compiled exe that meets the requirements and some general ideas about a possible design. One of my colleagues (young, single & without children) is going to have a go. They estimate 12-18 months to complete at about 10 hours a week which is roughly 5 months at 40 hours a week. I don't think I could get anywhere near that amount of work done in double that time. The other catch - they ask you to agree to not publish your code anywhere else.
Interesting... hopefully they'll publish all their "assignments" for those of us who want to read it but can't "take 1 day a week off work"! It's all well and good to have programmed something like this but for the amount of time it takes you'd probably be better off making some sort of "social network" where people can stalk other people to see if they're single.
-
The funny thing is that I could actually do that, although it would take a lot longer than they specify to do it properly. The C library and stl I already have most of, the C++11 parser and the compiler front end I know where I would start from and how that would work and the assembler I could put together from what I'm working on at the moment but I have absolutely no interest in working for them for free or in tying my work to 64bit Linux or even at the moment to specifically C++11. I will not be taking up their challenge although I will be interested to see how the winner does it.
"The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)
I believe it took Eddison Design Group, who make the most conformant C++ front end, a year to write that. That's just a conformant parser - this course expects to do that, plus code generation, plus an implementation of the standard library, in 10 hours a week. Seems entirely unrealistic. If they were charging, I'd assume it as a scam. As it is, I really cannot see the motivation. I'd be mightily surprised if it were possible.
-
Has anyone else heard of this[^]? The CPPGM Foundation (whoever they are) are offering a free C++ Grandmaster Certification. Participants will produce a fully compliant C++11 tool chain for 64bit Linux including compiler, assembler, linker, c library & full stl built without any third party dependencies but without any optimisation. The documentation for first assignment has been posted to the site as a sample and actually looks pretty good. They supply a test suite that your code must pass, a compiled exe that meets the requirements and some general ideas about a possible design. One of my colleagues (young, single & without children) is going to have a go. They estimate 12-18 months to complete at about 10 hours a week which is roughly 5 months at 40 hours a week. I don't think I could get anywhere near that amount of work done in double that time. The other catch - they ask you to agree to not publish your code anywhere else.
Looks like an interesting challenge. It's seems a bit weird to have an entire course be taught through assignments without giving any course content. But then again, I like to learn mathematics by taking a book, reading a theorem and proving it myself, then doing the exercises, or guessing the theorem, proving it, and comparing it to the text. But, something looks weird: ABOUT CPPGM: The CPPGM Foundation was formed by a software company Why don't they tell us what the software company is? I'm wondering if "a software company" just wants free labor and will select the best written code as their base. This level a paranoia is laughable. But a few years ago, I interviewed for a programming job where I had to take a series of qualifying programming tasks to evaluate whether I could do the job. Most of the task was to sniff packets, assemble the packets into data, parse the data into meaningful "business semantics". The tester told me that they were not judging me on comments, readability, speed, etc. They just wanted to know whether I could do it or not. So, I had a day to do the first assignment. I did not add comments, but thought the code itself was clear enough. When I was done, the tester said he was surprised that I could use wireshark in the manner that I did (as part of the task), and that he wished my code had comments in it, even though he said he didn't care for comments. Then he proceeded to ask for more "features" in my first task. This proceeded for a week and a half; I would submit a new piece of assignment, and then they would ask me to modify it and add some features. It was clear to me, that I was actually contributing to their code base somehow. And I promptly stopped the interview process, and avoided all contact with them.
-
I believe it took Eddison Design Group, who make the most conformant C++ front end, a year to write that. That's just a conformant parser - this course expects to do that, plus code generation, plus an implementation of the standard library, in 10 hours a week. Seems entirely unrealistic. If they were charging, I'd assume it as a scam. As it is, I really cannot see the motivation. I'd be mightily surprised if it were possible.
It all depends how complete and realistically useful you want it in terms of performance and practicality. The GOLD parser generator is capabale of generating a parser for C++11 given the EBNF in the correct form, so with a couple of weeks you could get a 'conformant' parser in the sense that it would parse C++11. However getting it to fail anything that isn't strictly C++11 with a meaningful error message would take many times as long. Getting it to produce from the parse a sufficiently detailed data structure for the 'correct' generation of code would take many more weeks or months before you actually did any code generation. I'm not surprised Edison took a year to do their parser though they might have spent a little more time fixing their C preprocessor while they were at it. That's still a mess. Never the less I think the challenge is theoretically possible although the schedule is ridiculous if you want any real world use out of the end product.
"The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)
-
It all depends how complete and realistically useful you want it in terms of performance and practicality. The GOLD parser generator is capabale of generating a parser for C++11 given the EBNF in the correct form, so with a couple of weeks you could get a 'conformant' parser in the sense that it would parse C++11. However getting it to fail anything that isn't strictly C++11 with a meaningful error message would take many times as long. Getting it to produce from the parse a sufficiently detailed data structure for the 'correct' generation of code would take many more weeks or months before you actually did any code generation. I'm not surprised Edison took a year to do their parser though they might have spent a little more time fixing their C preprocessor while they were at it. That's still a mess. Never the less I think the challenge is theoretically possible although the schedule is ridiculous if you want any real world use out of the end product.
"The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)
GOLD is an LALR parser generator, C++ is known to be unparsable by LALR. A full GLR parser may be able to do it, but I think that's still a tall order for a couple of weeks - it's notorious that C++ has many ambiguities, each of which would need some kind of workaround. Most C++ parsers are actually hand-written recursive descent parsers. This results in a simpler model where the oddities can be explicitly handled.
-
GOLD is an LALR parser generator, C++ is known to be unparsable by LALR. A full GLR parser may be able to do it, but I think that's still a tall order for a couple of weeks - it's notorious that C++ has many ambiguities, each of which would need some kind of workaround. Most C++ parsers are actually hand-written recursive descent parsers. This results in a simpler model where the oddities can be explicitly handled.
GOLD was originally LALR only but the last I looked it was supposed be LA1 now whatever that is? Anyway there is a project using it to parse C++03 so I expect it can be made to do C++11 aswell but you're right the results would be far from ideal. Anyone going for this within the deadline would have to reuse everything in sight to have any chance and that's where I would start but as I said even if it kind of worked a complete rewrite would be need after the 'competition' stage to turn it into anything useful so I don't really know what they're about.
"The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)
-
GOLD was originally LALR only but the last I looked it was supposed be LA1 now whatever that is? Anyway there is a project using it to parse C++03 so I expect it can be made to do C++11 aswell but you're right the results would be far from ideal. Anyone going for this within the deadline would have to reuse everything in sight to have any chance and that's where I would start but as I said even if it kind of worked a complete rewrite would be need after the 'competition' stage to turn it into anything useful so I don't really know what they're about.
"The secret of happiness is freedom, and the secret of freedom, courage." Thucydides (B.C. 460-400)
LA1, I guess, means they have added One symbol lookahead, which helps a lot, but their C++ parser will still have to have actions to disambiguate correctly. I suspect it will not fully support C++03, but even if it does it is still non-trivial to adapt it to C++11. If Microsoft, GCC and CLANG don't fully parse C++ correctly with the resources at their disposal most if us don't have a hope in hell.
-
Looks like an interesting challenge. It's seems a bit weird to have an entire course be taught through assignments without giving any course content. But then again, I like to learn mathematics by taking a book, reading a theorem and proving it myself, then doing the exercises, or guessing the theorem, proving it, and comparing it to the text. But, something looks weird: ABOUT CPPGM: The CPPGM Foundation was formed by a software company Why don't they tell us what the software company is? I'm wondering if "a software company" just wants free labor and will select the best written code as their base. This level a paranoia is laughable. But a few years ago, I interviewed for a programming job where I had to take a series of qualifying programming tasks to evaluate whether I could do the job. Most of the task was to sniff packets, assemble the packets into data, parse the data into meaningful "business semantics". The tester told me that they were not judging me on comments, readability, speed, etc. They just wanted to know whether I could do it or not. So, I had a day to do the first assignment. I did not add comments, but thought the code itself was clear enough. When I was done, the tester said he was surprised that I could use wireshark in the manner that I did (as part of the task), and that he wished my code had comments in it, even though he said he didn't care for comments. Then he proceeded to ask for more "features" in my first task. This proceeded for a week and a half; I would submit a new piece of assignment, and then they would ask me to modify it and add some features. It was clear to me, that I was actually contributing to their code base somehow. And I promptly stopped the interview process, and avoided all contact with them.
T too feel highly suspect about the motivations of the "company" running this. As you said, if they're a software company, why not tell us who? Also, they forbid blogging about or otherwise sharing your progress - preferring to keep the solutions for others taking the course. The whole thing seems dodgy. Shame, as it might otherwise have been an interesting course.
-
Has anyone else heard of this[^]? The CPPGM Foundation (whoever they are) are offering a free C++ Grandmaster Certification. Participants will produce a fully compliant C++11 tool chain for 64bit Linux including compiler, assembler, linker, c library & full stl built without any third party dependencies but without any optimisation. The documentation for first assignment has been posted to the site as a sample and actually looks pretty good. They supply a test suite that your code must pass, a compiled exe that meets the requirements and some general ideas about a possible design. One of my colleagues (young, single & without children) is going to have a go. They estimate 12-18 months to complete at about 10 hours a week which is roughly 5 months at 40 hours a week. I don't think I could get anywhere near that amount of work done in double that time. The other catch - they ask you to agree to not publish your code anywhere else.
With some 18 months time passed, the course evolved to a point where it got split into two phases: I + II. Phase I is completed and phase II is not yet started... The setting initially looked dubious to me too, but I finally identified the person behind it and could clarify my doubts. I spontaneously decided those days to participate for pure curiosity ;-). Curiosity is what drives me and brings me ahead - you sometimes have to allow you doing foolish things ;-)! Even C++ is not the hottest language to build a compiler for (notably fully hand-crafted - no tools allowed), it had a certain appeal (at least to me and a few more fools like me :-)). So, I completed phase I, and I must say, I learned a lot. I have mastered building a fully compliant C++ tokenizer, preprocessor, parser, a linker and a x86-64 assembler. The focus was never to create a production tool-chain, it was to learn something about compiler construction on a challenging C++ language specification (with knowing and properly handling the syntactic ambiguities) and at the same time implement it in C++. The course is kind of a MOOC, but it consists of assignments and self-study only (no instruction nor teaching), plus a provided test suite for all the programming assignment! The author did a tremendous effort to set the course up, and a huge majority of the CPPGM forum comments were very positive on the setting and the effective learning. The estimated effort was far under-estimated by the author. I did it in my spare time and had my fun with it - a mixture of challenge and feeling of success with each passed assignment. Even the course got to a halt now, I got more out of it than expected. It was a "hobby" of mine for the last 18 months, and as such, I got hooked to it. BTW: No worries on getting "abused" to code something for someone. From a course point of view, it fully makes sense that the "solutions" do not get published. Also the CPPGM guarantees to not use our code in any way. See the CPPGM Honor Code. So, I wish you all some foolish commitment once in a while! :-) Have fun! :-) Andi