lkuper / dissertation Goto Github PK
View Code? Open in Web Editor NEWExactly what it says on the tin.
Exactly what it says on the tin.
See my notes on the reviews for some of the justification for this change.
I think it actually won't be that much work to update the existing lambdaLVar determinism proof to accommodate arbitrary update operations. In fact, I don't think there's even any more proving to do; it's just a matter of rearranging things I've already written. Famous last words, maybe...
Reviewer 2 explicitly asked how we'd handle parallel or (and short-circuit computations in general). This section's already in my dissertation (although it's about parallel and instead of parallel or); I just need to include it here too.
Checklist:
We don't need to show the entire API, but in addition to the series of examples in section 4.2, we should give a systematic presentation of the most important API types and operations that we provide (not necessarily the stuff that data structure implementors would use, but the stuff that application writers would use). Hopefully a lot of this is in the LVish 2.0 Haddocks anyway.
From reviewer 2's review:
It is rather unfortunate that the determinism result (Theorem 2.1)
specifically does not address consistent termination (i.e., that if
one run terminates with a non-error result, another run cannot
diverge), but that this is only left as a conjecture. I think that,
especially for an archival publication, the conjecture ought to be
resolved (presumably positively), or there should at least be given a
clear argument for why such a resolution would be a particularly hard
undertaking, beyond the reasonable scope of the paper.Note that the determinism theorem already establishes a very tight
correspondence between different runs of a program: any two
successfully terminated computations from the same starting
configuration must yield stores that differ only by a permutation on
the locations, and so in particular, the two runs must have performed
equally many allocations. Since any program can be peppered with
additional dummy allocations, this effectively means that all
successful runs of a program perform the same number of basic
operations, only perhaps in a different order. Given this, it seems
particularly unlikely that one could construct a scenario in which one
run terminates successfully after n transition steps, while another
performs even n+1, let alone infinitely many, such steps.
Both reviewers brought this up. It's true that the claim is a bit strong!
This is mentioned in both the intro and the conclusion, if not in other places.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.