GithubHelp home page GithubHelp logo

pcf's People

Contributors

dvanhorn avatar philnguyen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pcf's Issues

Quotient with source location

The same treatment given to errors and contract violations to indicate source locations should also be applied to quotient expressions, since they may lead to errors.

Implement recursion

The documentation says the languages include recursion but they don't (and they should).

Abort with blame

Add E[blame] -> blame to semantics so blame jumps to top-level.

Elim duplicate syntax extensions for heap

Replace */heap/syntax.rkt with a heap mixin since these are all (mostly) identical. [Mostly because some have more evaluation contexts than others because of monitors; no harm done in adding these to all languages.]

Interactions not scrubbed

Terms evaluated at the interactions prompt are printed without being scrubbed (hiding the syntax objects).

The abortive reduction relations are broken by extension

The context-sensitive reduction relations for blame and errors is defined in terms of a helper metafunction for determining non-emptiness of evaluation contexts. Because the extension of these relations does not extend the helper functions, the extended relations are wrong.

Either eliminate the need for a helper (which requires enumerating eval contexts) or define for the largest language.

Currently there is no test case do to funny syntactic overlap in the languages.

Typing judgments too restrictive because of extension

The following does not type-check in SCPCF (in fact it causes a domain error):

((• (nat -> nat)) ⚖ 7)

This is because the typing relation on expressions is defined by mutual recursion on expressions and contracts. Due to the way redex does extension, the extension of the expression judgment will have no effect on calls to it from within the contract judgment (and vice versa).

This has been brought up on the mailing list, but there's no good solution at the moment.

http://lists.racket-lang.org/users/archive/2012-December/055486.html

It appears the best work around is to define the typing judgement for SCPCF and then use this for subsets PCF, CPCF, and SPCF. Typesetting will take some work to make it appear as it currently does.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.