tal-0.1.0.0: An implementation of Typed Assembly Language (Morrisett, Walker, Crary, Glew)
Translate
Contents
compile :: Tm -> M Machine Source #
test :: Tm -> IO () Source #
printM :: Display a => M a -> IO () Source #
t1 :: IO () Source #
t2 :: IO () Source #
t3 :: IO () Source #
t4 :: IO () Source #
t5 :: IO () Source #
toTyK :: Ty -> M Ty Source #
toTyContK :: Ty -> M Ty Source #
toProgK :: Tm -> M Tm Source #
toExpK :: Tm -> (AnnVal -> M Tm) -> M Tm Source #
reifyCont :: (AnnVal -> M Tm) -> Ty -> M AnnVal Source #
type N a = ReaderT Ctx M a Source #
toTyC :: Ty -> N Ty Source #
toProgC :: Tm -> M Tm Source #
toTmC :: Tm -> N Tm Source #
toDeclC :: Decl -> N Decl Source #
toAnnValC :: AnnVal -> N AnnVal Source #
type H a = StateT Heap M a Source #
toProgH :: Tm -> M (Tm, Heap) Source #
toTmH :: Tm -> H Tm Source #
toDeclH :: Decl -> H Decl Source #
toAnnValH :: AnnVal -> H AnnVal Source #
toTyA :: Ty -> M Ty Source #
toProgA :: (Tm, Heap) -> M (Tm, Heap) Source #
toHeapValA :: ValName -> AnnVal -> M (Ann HeapVal) Source #
toExpA :: Tm -> M Tm Source #
toDeclA :: Decl -> M [Decl] Source #
updateProd :: [Ty] -> Int -> [(Ty, Flag)] Source #
toAnnValA :: AnnVal -> M ([Decl], Ann Val) Source #
toValA :: Val -> M ([Decl], Val) Source #
toFlag :: Flag -> Flag Source #
toTyTAL :: Ty -> M Ty Source #
type Varmap = Map ValName SmallVal Source #
var2reg :: ValName -> M (Register, Varmap) Source #
toSmallVal :: Varmap -> Ann Val -> M (SmallVal, Ty) Source #
toWordVal :: Varmap -> Ann Val -> M WordVal Source #
toInstrsTAL :: Varmap -> Delta -> Gamma -> Tm -> M (Heap, InstrSeq) Source #
toDeclTAL :: Varmap -> Delta -> Gamma -> Decl -> M (Varmap, Delta, Gamma, [Instruction]) Source #
toHeapVal :: Varmap -> Ann HeapVal -> M (Heap, HeapVal) Source #
toProgTAL :: (Tm, Heap) -> M Machine Source #
Methods
mempty :: Heap #
mappend :: Heap -> Heap -> Heap #
mconcat :: [Heap] -> Heap #