Ok, here is the thing that I want to make clear, everyone here has pointed to examples of old versions of gms being able to be "decompiled". I am referring to the latest version GMS 2 or 2.3. Secondly, I am referring to the YYC Compiler, which may be based on a C++ compiler. Should a decompiler exist for C++ or a compiler based on a C++ compiler, the executable binary it creates, would not be able to decompile a executable back into the original code. You would have to go through the trouble and piece 9/10s ( nine-tenths ) or the rest of the code what left out.
Its like using a bad tool to get a job done. Well the job was poorly done - now you have to go through the trouble and reinvent the code.
This is something that I would never do, because there are better options.
You can either (1) rewrite the code from scratch ( which is the easy way ) or (2) if you know Assembly language , convert the binary executable back into assembly and use it from there ( which is the hard way ). One of my professors would disagree, who knows assembly language makes everything look easy when he reverse engineers my game in MASM. I am beginning to hate it when he lectures me on how inefficient a compiler is when it optimizes code in the compiling process, and points out where it could have been done better in the assembly scripts from the conversion of the binary executable.
Note, in my original post , I only mentioned gms ( in relevance to the current version that I did not make that clear ) , gcc, g++, and compilers of the same type for Windows.
The reason I posted , the origina post, is that , many students foolishly do not back up their work - and think, because in Windows a file can be recovered after its deleted ( for some older versions of Windows ), find out the hard way that in Linux, when you delete a file - ITS GONE. In my programming religion - a decompiler does not exist If it does, its a poor tool.
The students come to me and ask, "Mr. Williams, is there a decompiler that I can use to get back the actual source code from the executable, because I just discovered that my C++ source code got FUBARed and/or lost by accident. I did not back it up or print out a hard copy , and I really need this badly for my assignment for finals that's comming up next week ". I cant help them with that.
Since, Dr. Stroustrup has stated that a decompiler is only suitable for interpreted and semi-interpreted languages that have the source code aside - still makes the decompiler a worthless tool.
A worthless tool is no good tool at all , in this context to the languages I am speaking about. Its better to reinvent the programfrom scratch. This is the only solution what I tell the students who are raining sweat all over the carpet in the lab, in fear of doing the work all over again.
You can believe what ever you want - maybe a decompiler exists to you in the language you program in ( if its not C or C++ ), but not to me, not in my programming religion .
Maybe in your programming religion, a decompiler exists... but I dont see it because of what I have stated for the languages I use.
I am not going to stop you from what ever you use to get your job done.
While I may impress many of you as eccentric and strange ( or incorrect ), I have a different mindset as to how I think in programming, and in that sense , its part of my programming religion . I dont design my programs like anyone else, and in a sense I don't look at GMS as just a tool for designing games. I think there are other things you can design with it.
off-tangent :
I dont argue with Dr.Stroustrup with what he says when I ask him a question, since he knows more than me. I seldom and rarely go to him for answers, that my professors, books, or what the website can provide. This is the second time that I have ever emailed him. The first time I wanted to ask him since is a member of the ISO committee for his programming language, to add to the standard some kind of portable code to deal with computers that use different binary endians for variables, since at the time I was programming on a Commodore Amiga, which used Motorola 68000 that I had to port code to a PC via null modem.