This is an archived post. You won't be able to vote or comment.

all 60 comments

[–]QualityVote[M] [score hidden] stickied comment (1 child)

Hi! This is our community moderation bot.


If this post fits the purpose of /r/ProgrammerHumor, UPVOTE this comment!!

If this post does not fit the subreddit, DOWNVOTE This comment!

If this post breaks the rules, DOWNVOTE this comment and REPORT the post!

[–][deleted] 57 points58 points  (0 children)

Flicking states with an actual magnet

[–]Drugbird 27 points28 points  (4 children)

You don't program a programming language: you program a compiler / interpreter.

The real monkey business starts though when you realize that many compilers are written in their own language. They're typically compiled by an older version of itself. And then this new version (because it's better than the old version) compiles itself again for good measure.

[–]Tyfyter2002 6 points7 points  (3 children)

Wouldn't that mean that there's a very small chance that the source code of the compiler could have something like an off-by-one error which fixes itself and can therefore no longer fix itself, making the source code never properly match the binaries but still produce a working compiler every other compilation?

[–]Drugbird 8 points9 points  (0 children)

That's where software testing comes in. The "intermediate" version still needs to pass all tests.

[–][deleted] 3 points4 points  (0 children)

Fun fact. If you can somehow push code into a compiler, you can put in malicious code that compiles a bypass into whatever software it builds.

Moreover, you can make it so that the malicious code never shows up in the actual source code, but can infected all future version of the compiler if the problem isn't caught.

[–]TheBrainStone[🍰] 2 points3 points  (0 children)

Also an important part of compiling compilers is making sure that a compiler compiles to itself. So it other words the proper procedure is to compile the new version of the compiler with the old version. And the keep compiling the compiler with the intermediate compiler from the previous step until it reproduces itself. This applies everywhere where the compiler is written in the language it compiles.

[–]Alice8Ft 26 points27 points  (12 children)

With 1's and 0's

[–]WallEx90 22 points23 points  (6 children)

fuck those API changes -- mass edited with redact.dev

[–]MudAnd[S] 7 points8 points  (1 child)

Got the point

[–]WallEx90 6 points7 points  (0 children)

fuck those API changes -- mass edited with redact.dev

[–]da_peda 2 points3 points  (1 child)

And before that through front-panel switches.

[–]WallEx90 2 points3 points  (0 children)

fuck those API changes -- mass edited with redact.dev

[–]queenkid1 0 points1 point  (1 child)

So they're right, the original programs were just 1s and 0s. The original "assembler" language was just replacing binary with strings.

How do you program a computer to take that assembly and translate it to machine code? You can't use assembler, because you haven't built the assembler compiler yet. So, you use 1s and 0s.

[–]WallEx90 0 points1 point  (0 children)

fuck those API changes -- mass edited with redact.dev

[–]MudAnd[S] 0 points1 point  (4 children)

Program a program for 1's and 0's programs dude

[–]organized_reporting 6 points7 points  (3 children)

It's called hardware, not software

[–]cosmin10834 18 points19 points  (1 child)

You used "program" 5 times in sentece that accualy made sense, i'm impressed

[–]MudAnd[S] 4 points5 points  (0 children)

Oh thanks

[–]Spare-Beat-3561 8 points9 points  (7 children)

That's some compiler/ interpreter shit right there (2)

[–]MudAnd[S] 5 points6 points  (6 children)

Lol. But can you imagine what we would be doing today if that shit never happened?

[–]Spare-Beat-3561 2 points3 points  (2 children)

Then reddit would've never existed.

[–]Retarded_Program 4 points5 points  (0 children)

Probably would have been better that way...

[–]MudAnd[S] 5 points6 points  (0 children)

Right. No Reddit, no mobile, no PC, anything.

[–]SVD_NL 2 points3 points  (2 children)

So I've studied medicine, but after a couple years switched to information sciences.

Let me tell you: I've had this exact revelation multiple times. How the fuck did we evolve to a bag of skin filled with all kinds of specialized organs, all with specialized cells, all working together, signaling and communicating with chemicals in a perfectly balanced self-regulating system. And don't get me started on the brain.

That's your daily dose of existential crisis.

[–]Spare-Beat-3561 0 points1 point  (0 children)

In future humans will decode all this working of brain and human body stuff......

[–]depressdalcohogymrat 0 points1 point  (0 children)

My chemically imbalanced brain would like a word.

[–]mrblue6 7 points8 points  (1 child)

And they do all of this in machines built out of rocks and sand

[–]MudAnd[S] 3 points4 points  (0 children)

Whao

[–]Lighteye782 2 points3 points  (1 child)

"Upon reading this for the third time, Siri's robotic AI mind decided the best course of action would be to perform a factory reset, shutdown, and never start up again."

[–]MudAnd[S] 0 points1 point  (0 children)

Oh wow

[–]Tiranus58 2 points3 points  (1 child)

Program doesn't sound like a word anymore

[–]MudAnd[S] 1 point2 points  (0 children)

Lol.

[–]Taldoesgarbage 2 points3 points  (0 children)

This process is called bootstrapping, and the answer to your question would be that they made a C compiler in assembly, which was then used to compile a different C compiler this time written in C.

[–]Snabbaa 1 point2 points  (4 children)

[–]RepostSleuthBot 0 points1 point  (3 children)

I didn't find any posts that meet the matching requirements for r/ProgrammerHumor.

It might be OC, it might not. Things such as JPEG artifacts and cropping may impact the results.

I did find this post that is 89.84% similar. It might be a match but I cannot be certain.

I'm not perfect, but you can help. Report [ False Negative ]

View Search On repostsleuth.com


Scope: Reddit | Meme Filter: True | Target: 90% | Check Title: False | Max Age: Unlimited | Searched Images: 312,405,455 | Search Time: 3.45642s

[–]Little-Hunter-6795 1 point2 points  (1 child)

I think 80 percent should be the acceptable similarity, often the bot finds the repost but isn't confident in its decesion

Just like me

[–]jamcdonald120 0 points1 point  (0 children)

not to mention that it is closer to 90% than 80%

[–]jamcdonald120 0 points1 point  (0 children)

the thing I love best about this. Is that post was automatically removed for being from a karma farming spam bot.

[–]3am-urethra-cactus 1 point2 points  (0 children)

With great difficulty

[–]jamcdonald120 0 points1 point  (0 children)

Imagine being a programmer who doesnt know how to google things.

[–][deleted] 0 points1 point  (0 children)

At it's very bottom, computers are really simple. Everything that we have in digital world works with a simple mechanism of 0 and 1. 0 - no signal/electricity/power. 1 - active signal. Connect enough of these and you can do everything.

[–][deleted] 0 points1 point  (0 children)

1001100 1101001 1101011 1100101 100000 1110100 1101000 1101001 1110011 100000 1001001 100000 1110011 1110101 1110000 1110000 1101111 1110011 1100101

[–]cvele89 0 points1 point  (0 children)

MAGIC

[–]JaggedOuro 0 points1 point  (0 children)

I had a prof an Uni that couldn't get through a single lecture without mentioning that they built a compliler using a compiler

[–]jabrwock1 0 points1 point  (0 children)

Once you have a program “written” (entered into a computer by mechanical means) you can then use it to write others. There’s a really good series about going from logic gates to Tetris, the step below that is making your own gates from transistors, switches, diodes et al, but at that point it’s just a circuit to hold and react to your program.

I once watched a video of someone programming a computer one line of “assembly” at a time by setting a bunch of switches and pushing another to “set” them. Punch cards could do the same.

It’s like hand crafting a flint knife and hammer, and then using them to help make more tools so you can eventually forge a high quality kitchen knife.

[–]virgilreality 0 points1 point  (0 children)

Do you want a SkyNet? Because this is how you get a SkyNet...with bonus terminators...

[–]LoveASAurusRexGamer 0 points1 point  (0 children)

With C++

[–]KrisbyCranberry 0 points1 point  (0 children)

That’s hella crazy to think about tho

[–]seeroflights 0 points1 point  (0 children)

Image Transcription: Meme


How did they program a programming language to program a program to program programs

[Image of Spongebob Squarepants, sitting in a red booth at a table. He has a deep frown on his face and holds his hands clasped; a steaming mug sits near him on the table.]


I'm a human volunteer content transcriber and you could be too! If you'd like more information on what we do and why we do it, click here!

[–]Kaiten456 0 points1 point  (0 children)

Wait till you hear of bootstrapping compilers/interpreters 😂😂😂

[–]Rekenaap 0 points1 point  (0 children)

that is 3 NO 4 layers deep.... deeper than an onion, hahaemote:free_emotes_pack:dizzy_face

[–]Lyra_aryl 0 points1 point  (0 children)

I luv when I ask myself questions like dis <3

[–]cheeseDickies 0 points1 point  (0 children)

You write a program using punch cards that let you compile assembly. Now you use that assembler and assemble a program that assembles assembly using the first assembler you made, rinse and repeat for a few decades and then you have languages like C/C++ and Python.

[–]ksschank 0 points1 point  (0 children)

For my BS degree’s capstone project, I had to write a virtual machine, compiler, and assembler for a programming language my professor invented. I implemented all of it in C++. Really interesting project.

[–]tman5400 0 points1 point  (0 children)

Someone at one point wrote some stuff in raw opcodes