Can we compile C code into PowerPoint?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments

it's time to stop

👍︎︎ 47 👤︎︎ u/magnum___ 📅︎︎ Apr 02 2020 🗫︎ replies

This is cool and scary. Cool because I want to know. Scary because I don't want to EVER use any of that ...

I am more like the person who ... I dunno ... uses powerpoint to do crappy presentations (well, libreoffice, but I hate creating slides for these crappy presentations, they are always sooooooo useless).

👍︎︎ 13 👤︎︎ u/shevy-ruby 📅︎︎ Apr 02 2020 🗫︎ replies

I can't wait until this is used as a maldoc in a phishing campaign somehow

👍︎︎ 3 👤︎︎ u/mandreko 📅︎︎ Apr 02 2020 🗫︎ replies

The converse would be more interesting, a product that compiled a slide deck full of buzzwords into production code, without coffee as input.

👍︎︎ 5 👤︎︎ u/emotionalfescue 📅︎︎ Apr 02 2020 🗫︎ replies

You were so preoccupied with whether or not you could, you didn't stop to think if you should!

👍︎︎ 4 👤︎︎ u/[deleted] 📅︎︎ Apr 02 2020 🗫︎ replies

Next time when I say to someone- " sure I'm not a genius nerd, I can at least have some fun in life", I'll remember Tom and shut up

👍︎︎ 5 👤︎︎ u/[deleted] 📅︎︎ Apr 02 2020 🗫︎ replies

Can we not?

👍︎︎ 7 👤︎︎ u/[deleted] 📅︎︎ Apr 02 2020 🗫︎ replies

Your scientists were so preoccupied with whether they could, they didn't stop to think if they should.

👍︎︎ 1 👤︎︎ u/LordAlbertson 📅︎︎ Apr 02 2020 🗫︎ replies

This is Sophism, not science.

👍︎︎ 1 👤︎︎ u/alhasaniq 📅︎︎ Apr 02 2020 🗫︎ replies
Captions
four years ago I made my first major contribution into the field of PowerPoint programming and the use of Microsoft Office products for unconventional purposes I have received positive negative and Confused comments in response to the PowerPoint Turing machine video as well as some repetitive ones such as but can it run crisis but can it run crisis and 19 more copies of but can it run crisis which I continue to receive every few months or so overall it seems my work has successfully changed the way people think about PowerPoint and I am pleased to say interest in PowerPoint appears to be on the rise in fact according to cherry-picked Google engrams data usage of the word PowerPoint in publications has increased dramatically over a certain period of time but there is still more work to be done to convert PowerPoint into a mainstream programming language as of this video PowerPoint is not listed in any of the top 10 top 10 programming language lists on Google search results page and as yet to appear in any stack overflow developer survey some people might attribute the lack of code written in PowerPoint to the fact that PowerPoint is an inelegant programming language or that running PowerPoint programs requires a large memory intensive interpreter however the popularity of javascript and electronic asians shows it is ease of use not elegance or efficiency that drives programming language popularity so maybe what we really need is more tooling to help the average developer get started with PowerPoint programming in an ideal world an aspiring PowerPoint developer could take code they have already written in a different language like C and compile it directly into PowerPoint of course creating such a PowerPoint compiler would be a tremendously difficult task but I wouldn't be the first to attempt it last year a group of Ford researchers at the University of Chicago created PowerPoint suite a set of Python and autohotkey scripts that can interface with and run PowerPoint turing machines using powerpoint turing machines for addition subtraction increment and decrement operations they can perform all arithmetic calculations needed to run a C program after it was compiled to simplified assembly language their entry into the uncommon hacks hackathon won most technically impressive project though apparently the jpmorgan best hack for social good award went to a different team their impressive work shows that PowerPoint can be used to make meaningful calculation in a semi practical way and can do more than just run toy models but can we take this idea further can we make PowerPoint implement not only the arithmetic of complicated programs but also the control flow and memory management with reasonable efficiency could we efficiently simulate say the entire intel x86 instruction set in PowerPoint probably not but let's try anyway the PowerPoint Turing machine is functional but very inefficient unlike a theoretical Turing machine it has a finite eight-cell tape and requires over 16,000 animations a number which grows quadratically with the tape size an Intel 8086 processor the first ship to use the x86 instruction set works on 16-bit numbers and certain operations like multiplication provide 32 bits at output to simulate such operations efficiently we will leave our PowerPoint structure to be modeled more like a circuit than a Turing machine simulating a circuit in PowerPoint is fairly easy as with the PowerPoint Turing machine we rely on the user to drive the computation by clicking randomly on any link that is exposed to read a bit a circuit component provides two buttons a 1 and a 0 to output a bit to another component it provides covering rectangles that reveal or block the inputs to the next component using this method we can create a full adder just like the one used in a real processor the adder takes in two input bits and a carry bit and outputs one output bit and one carry bit to be passed on to the next adder by creating a row of adders we can successfully add 16-bit numbers and by copying elements we can avoid animating each adder separately implementing subtraction and bitwise operators is just as easy multiplication can be implemented as repeated addition and shifting using a modified adder we create an accumulator that adds the provided number to the running sum we also create a shift in place register that we feed one of the inputs into division is similar but we use subtraction and shift in the opposite direction with basic arithmetic out of the way we come to a bit of a problem if each operation is implemented on a different slide we need some way to send data between slides but there doesn't seem to be any way to do this actually there is one thing that is preserved when a PowerPoint switches slides that can be used to send data the current position of the mouse we just need some way of enforcing that the user doesn't move their mouse across certain boundaries at certain times and using mouse over links we can do just that the user is now instructed to click randomly provided that they don't cross any of the boundaries if they do the processor crashes using this concept the user can transfer single bits between slides based on the position their mouse is at when it enters the slide by alternating between slides we can transfer entire bytes and implement registers now comes control flow we can store each instruction on a different slide but we need some way of indexing into the instructions based on the value of a register to do this we create a literal lookup table of links each bit of the instruction pointer narrows down a subset of the table once all bits are entered a single square is revealed our instruction point to slide can now jump to instructions and be easily incremented memory can be handled very similarly with a lookup table except instead of leading to an instruction slide each leads to a one byte rewritable memory cell calculations control flow memory what else you need to processor well it turns out quite a lot when I started this project did I realize that what I had set out to do was probably insane yes did I plan to successfully implement a working PowerPoint CPU anyway yes did I fully intend to implement all 81 of the original x86 instructions and create a custom micro instruction language to do it yes while working late at night dragging PowerPoint Auto shapes around did I finally surpass my capacity to pour time into this project as the April 1st deadline approached sadly also yes but then I realized I need to stop thinking about this like a computer scientist and start thinking like a mathematician instead of building an efficient PowerPoint processor it suffice is just to show that such a processor can't exist having constructed these essential pieces of a processor in isolation and having verified that PowerPoint is able to handle composites of pieces of similar complexity it tribulus that an efficient PowerPoint processor and a full PowerPoint C compiler can be created but I know some viewers will find this conclusion unsatisfying and - then I say my code is on github completing it is left as an exercise to the viewer and while we are working from a theoretical point of view it's actually hard to see what can't be done in PowerPoint graphical output can be accomplished using small rectangles adjusts similarly to memory text input and output are achievable by creating an on-screen keyboard mouse input can be captured with a grid of clickable rectangles I guess what I'm saying is in theory maybe a can run crisis
Info
Channel: Tom Wildenhain
Views: 245,776
Rating: 4.9394183 out of 5
Keywords:
Id: LArkm4v5mWA
Channel Id: undefined
Length: 7min 21sec (441 seconds)
Published: Wed Apr 01 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.