<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="robots" content="index,nofollow">



<title>RSSA - MLton Standard ML Compiler (SML Compiler)</title>
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="all" href="common.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="screen" href="screen.css">
<link rel="stylesheet" type="text/css" charset="iso-8859-1" media="print" href="print.css">


<link rel="Start" href="Home">


</head>

<body lang="en" dir="ltr">

<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-833377-1";
urchinTracker();
</script>
<table bgcolor = lightblue cellspacing = 0 style = "border: 0px;" width = 100%>
  <tr>
    <td style = "
		border: 0px;
		color: darkblue; 
		font-size: 150%;
		text-align: left;">
      <a class = mltona href="Home">MLton MLTONWIKIVERSION</a>
    <td style = "
		border: 0px;
		font-size: 150%;
		text-align: center;
		width: 50%;">
      RSSA
    <td style = "
		border: 0px;
		text-align: right;">
      <table cellspacing = 0 style = "border: 0px">
        <tr style = "vertical-align: middle;">
      </table>
  <tr style = "background-color: white;">
    <td colspan = 3
	style = "
		border: 0px;
		font-size:70%;
		text-align: right;">
      <a href = "Home">Home</a>
      &nbsp;<a href = "Index">Index</a>
      &nbsp;
</table>
<div id="content" lang="en" dir="ltr">
RSSA is an <a href="IntermediateLanguage">IntermediateLanguage</a>,  translated from <a href="SSA2">SSA2</a> by <a href="ToRSSA">ToRSSA</a>,  optimized by <a href="RSSASimplify">RSSASimplify</a>, and  translated by <a href="ToMachine">ToMachine</a> to <a href="Machine">Machine</a>. <h2 id="head-55f8ebc805e65b5b71ddafdae390e3be2bcd69af">Description</h2>
<p>
RSSA is a <a href="IntermediateLanguage">IntermediateLanguage</a> that makes representation decisions explicit. 
</p>
<h2 id="head-8781d615fd77be9578225c40ac67b9471394cced">Implementation</h2>
<p>
<a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-MLTONWIKIVERSION-release/mlton/backend/rssa.sig?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">rssa.sig</a> <a href = "http://mlton.org/cgi-bin/viewsvn.cgi/mlton/tags/on-MLTONWIKIVERSION-release/mlton/backend/rssa.fun?view=markup"><img src="moin-www.png" alt="[WWW]" height="11" width="11">rssa.fun</a> 
</p>
<h2 id="head-a6de4b535fedeaa8890bd890b60fe09f87b5f96a">Type Checking</h2>
<p>
The new type language is aimed at expressing bit-level control over layout and associated packing of data representations.  There are singleton types that denote constants, other atomic types for things like integers and reals, and arbitrary sum types and sequence (tuple) types.  The big change to the type system is that type checking is now based on subtyping, not type equality.  So, for example, the singleton type 0xFFFFEEBB whose only inhabitant is the eponymous constant is a subtype of the type Word32. 
</p>
<h2 id="head-35ec00231a68203708e39f0e2cc10b50c6bf62de">Details and Notes</h2>
<p>
SSA is an abbreviation for Static Single Assignment.  The RSSA <a href="IntermediateLanguage">IntermediateLanguage</a> is a variant of SSA. 
</p>
</div>



<p>
<hr>
Last edited on 2006-11-02 17:35:24 by <span title="76.16.241.4"><a href="MatthewFluet">MatthewFluet</a></span>.
</body></html>
