7 ms·
Emit-C: A time travelling programming language
- unquietwiki 2y agoSubmitted to r/altprog ; I love a language that can murder variables, heh.
- cyanmagenta 2y agoI am going to be harsh here, but I think it’s necessary: I don’t think anyone should use Emit-C in production. Without proper tooling, including a time-traveling debugger and a temporal paradox linter, the use case just fails compared to more established languages like Rust.
- doormatt 2y agoNo one is claiming this is necessary. It's a toy language built for fun.
- mygrant 2y agoWoosh
- porcoda 2y agoGiven how often people seriously say things like the top level comment being responded to around here, an explicit /s is almost necessary since it can be hard to distinguish from the usual cynical dismissive comments.
- fragmede 2y agoI down vote explicit /s' on principle. If you have to add it, you're not doing it right (imo).
- deleted 2y ago[deleted]
- pcblues 2y agoI think a syntax highlighter and in-line documentation for future language features before they are created is also necessary. I'll stick with more established languages, too. Time in a single direction is already hard.
- beefnugs 2y agoThis was the first message sent back by the machines. Early versions considered propaganda before violence. But by 3460 our last hope was enough time loop bugs in their code that their processors were slow enough for us to get single suicide bombers into their cooling vents
- seanhunter 2y agoThe good news is we can hopefully expect future users to send those back to us along with the compiler version from the language once it’s more established. Unless perhaps I’m misunderstanding TFA?
- fasa99 2y agoI do wonder how this pertains to "blast processing" in the original Sega Genesis Some say it was a temporal distortion field around the 68000 increasing clock speed by 900% Some say it was the code name for programmers working 140 instead of 80 hours a week writing assembly. Some say it is something to do with streaming realtime pixel data to the graphics chip for high-color graphical image rendering If you ask me, though, time distortion
- greenhat76 2y agoI don't think anyone's arguing this should be used in production
- deadbabe 2y agoFor the real computer scientists out here, what would time complexity notation be like if time traveling of information was possible (i.e. doing big expensive computations and sending the result back into the past)?
- openasocket 2y agoSurprisingly there is prior work on this! https://www.scottaaronson.com/papers/ctchalt.pdf https://www.scottaaronson.com/papers/ctchalt.pdf . Apparently a Turing Machine with time travel can solve the halting problem
- fragmede 2y agoWith time travel, isn't the halting problem trivially solvable? You start the program, and then just jump to after the end of forever and see if the program terminated.
- PittleyDunkin 2y agoSurely we already have this: the jump just takes forever.
- HeliumHydride 2y agoI think you can only time travel a finite time.
- MadnessASAP 2y agoThat's why you instead specify that if & when the program halts it travels back in time to let you know it has. Thus you would know immediately after starting the computation if it's going to halt, how long it'll take, and what the result is. Of course you should still carry out the computation to prevent a paradox.
- JadeNB 2y ago> With time travel, isn't the halting problem trivially solvable? You start the program, and then just jump to after the end of forever and see if the program terminated. Some programs won't halt even after forever, in the sense of an infinite number of time stops. For example, if you want to test properties of (possibly infinite) sets of natural numbers, there's no search strategy that will go through them even in infinite time. (Footnote that I'm assuming, I think reasonably but who knows what CSists have been up to?, a model of computation that allows the performance of countably, but not uncountably, many steps.)
- danslacker 2y ago[flagged]
- twwwt 2y agoI'm waiting for the day when we have all agreed that what is done here is not time travelling. Rather, it is a simulation of time travelling, or pseudo time travelling, if you will. At the same time, I'm afraid this will never happen since it is already too late, since we have missed the point in time when there was the chance to call it right. For this, we would need real time travelling.
- seanmcdirmid 2y agoOh wow, this reminds me of Jefferson’s time warp (virtual time), but that was more for dealing with inconsistencies brought about by concurrent processing. https://dl.acm.org/doi/10.1145/37499.37508 https://dl.acm.org/doi/10.1145/37499.37508 I wrote a paper with Jonathan Edwards around the concept of managed time a while back also: https://www.microsoft.com/en-us/research/publication/programming-with-managed-time/ https://www.microsoft.com/en-us/research/publication/program... But this is more like time traveling as an explicit first class thing, rather than just a way to make things consistent wrt to concurrency or live programming. I don’t think first-class time travel has been explored so much yet.
- Mathnerd314 2y agoThere is the TARDIS monad in Haskell https://hackage.haskell.org/package/tardis-0.5.0/docs/Control-Monad-Tardis.html https://hackage.haskell.org/package/tardis-0.5.0/docs/Contro... It doesn't have the multiple timelines or killing features - it just deadlocks if there is a paradox or the timeline is inconsistent.
- anonzzzies 2y agoShould've waited for april 1st and presented this as a serious language with a web framework, leftpad and always changing, in unproductive and unpredictable ways, npm competitor, having published modules travel forward and backward in time in random ways every time you install one, so like actual npm module devs behave. Then I might start using it instead of node/js/npm.
- eterevsky 2y agoSlightly related, time travel has implications for the computation complexity: https://arxiv.org/abs/quant-ph/0309189 https://arxiv.org/abs/quant-ph/0309189, https://www.scottaaronson.com/papers/ctc.pdf https://www.scottaaronson.com/papers/ctc.pdf.
- svilen_dobrev 2y agocan you send something in future? so it awaits silently there? in either particular timeline.. or in any timeline? invokes quite some bitemporal associations.. btw speaking of time-warping, anyone know what's the situation with Dynamic Time Warping [1], i.e. non-linear timeline (think wow-and-flutter of a tape-player, or LP-player). Last time i checked it was computationaly prohibitive to try use it for like sliding-window-search (~convolution) over megabytes of data? [1] https://mlpy.sourceforge.net/docs/3.5/dtw.html https://mlpy.sourceforge.net/docs/3.5/dtw.html
- bean-weevil 2y ago> can you send something in future? Store it in a variable and wait for a while? :P
- mgsouth 2y agoTwo weeks ago [edit: local time] we submitted a request for some enhancements we really need for our term final paper, but haven't heard anything. We realize this is a volunteer project, but our whole final grade hinges on this, so we're going to try submitting the requests earlier... * Can we have a multi-verse? * We really need to be able to kill a variable but have it linger on for a while. This is to allow revenge, and... * Our whole paper is about Bob/Alice going back in time, shooting his/her grandfather, who lingers long enough to sire their father's brother Tom, who marries their mother instead, who gives birth to Alice/Bob, who although now their own cousin is still a murderous beast, goes back in time and shoots at their grandfather, misses, kills Tom instead, thus their original father marries their mother, and Bob/Alice is born. Thus demonstrating local paradoxes with meta-consistency and explaining much in our current timeline. We're gonna get an A+ for sure. * We suggest storing the metaverse as a directed cyclic graph of the operations and not saving state. To collapse the metaverse (in the quantum physics sense, not in emiT's oh-no-everything-is-impossible sense) simply apply the graph to a set of pre-conditions, and as you process each node apply its state constraints to the metaverse state. Handling the node cycles is normally seen as a challenge, but there's some sample code posted on HN in March, 2028 that should make it a breeze.