News for hackers. Stuff that matters.
Re:My First Fifteen Compilers by oh_teh_meows on Friday July 12, 2019 @11:49AM (#20421568)
This might be a little off-topic, but I wonder if the idea of nano-passes can be applied to other areas. For example, can we predict the future of technology by gradually evolving their capabilities? Or say start from some point in the future (interstellar travel!), and gradually work backwards what we think is needed?

Or how about predicting geopolitics/economics?

To use this method effectively, I think we'll need to fully specify, to the extent possible, the condition of each stage in time. That way, at any stage, we can see what constituents might possibly interact with each other and evolve something new.

Re:My First Fifteen Compilers by derjames on Friday July 12, 2019 @12:22PM (#20421864)
A common practice in organic chemistry is to start from the target molecule and work backwards trying to determine simpler precursor molecules that would produce the target. 'Retrosynthesis'
Re:My First Fifteen Compilers by oh_teh_meows on Tuesday July 16, 2019 @02:18AM (#20447872)
Really really cool! I wonder if we can do something similar with programming. Suppose we have a conceptual framework where each module/system is a widget made up of slightly simpler and well-defined widgets. If we can specify what we want, perhaps a system can be devised that would try to build it from a database of widgets. If some of the constituent widgets are not found, the system could recursively specify each one and find/construct.

In this recursive process, the language used to specify the requirements of a widget can be a changing DSL whose grammar and basic constructs co-evolve with the complexity/abstraction level of the widgets.

This seems feasible because we (software engineers) are one such system. Starting from basic transistors, we build ever higher abstraction layers along with the language used to specify them (circuit diagrams -> microcodes -> assembly -> C -> DSLs). I believe multi-layer neural networks are also a prime example of such a system.

Re:My First Fifteen Compilers by naturlich on Friday July 12, 2019 @02:04PM (#20422902)
The difference in those targets is that they're uncertain, and that that uncertainty compounds as you reach further into the future. I don't think the nanopass-in-reverse approach lends itself well to resolving uncertainty, because you'd start from the point of most uncertainty, which sort of begs the question a bit.
Re:My First Fifteen Compilers by oh_teh_meows on Sunday July 14, 2019 @11:55AM (#20434087)
you're right about that, so I think what it could help us with is to provide a sort of guidance when we have a particular end-goal in mind.