Changes between Version 3 and Version 4 of Commentary/Rts/HaskellExecution


Ignore:
Timestamp:
Sep 12, 2006 3:14:00 PM (8 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/Rts/HaskellExecution

    v3 v4  
    33= The Haskell Execution Model = 
    44 
    5 The [wiki:Commentary/Compiler/StgSyn STG language] has a clear ''operational'' model, as well as having a declarative lambda-calculus reading.  The business of the code generator is to translate the STG program into `C--`, and thence to machine code, but that is mere detail. From the STG program you should be able to understand: 
     5The [wiki:Commentary/Compiler/StgSynType STG language] has a clear ''operational'' model, as well as having a declarative lambda-calculus reading.  The business of the code generator is to translate the STG program into `C--`, and thence to machine code, but that is mere detail. From the STG program you should be able to understand: 
    66  * What functions are in the compiled program, and what their entry and return conventions are 
    77  * What heap objects are allocated, when, and what their layout is 
     
    3434 
    3535Dealing with calls is by far the most complicated bit of the execution model, and hence of the code generator.  Before we can talk about that, we need some terminology: 
    36   * The '''arity''' of a function is the number of lambdas statically used in [wiki:Commentary/Compiler/StgSyn the lambda-form of its definition].  Note that arity is not deducible from the type.  Example: 
     36  * The '''arity''' of a function is the number of lambdas statically used in [wiki:Commentary/Compiler/StgSynType the lambda-form of its definition].  Note that arity is not deducible from the type.  Example: 
    3737{{{ 
    3838f :: Bool -> Bool -> Bool