## backend.api
# Compiled by:
#
src/lib/compiler/core.sublib# Generation of machine code from the highcode intermediate form
### "When someone says ``I want a programming language
### in which I need only say what I wish done,''
### give him a lollipop."
###
### -- Alan Perlis
stipulate
package acf = anormcode_form; # anormcode_form is from
src/lib/compiler/back/top/anormcode/anormcode-form.pkg package cs = code_segment; # code_segment is from
src/lib/compiler/execution/code-segments/code-segment.pkg package pcs = per_compile_stuff; # per_compile_stuff is from
src/lib/compiler/front/typer-stuff/main/per-compile-stuff.pkg package ds = deep_syntax; # deep_syntax is from
src/lib/compiler/front/typer-stuff/deep-syntax/deep-syntax.pkg package sma = supported_architectures; # supported_architectures is from
src/lib/compiler/front/basics/main/supported-architectures.pkgherein
api Backend {
#
package blh: Backend_Lowhalf; # Backend_Lowhalf is from
src/lib/compiler/back/low/main/main/backend-lowhalf.api # # "blh" == "backend_lowhalf".
target_architecture: sma::Supported_Architectures; # PWRPC32/SPARC32/INTEL32.
abi_variant: Null_Or(String); # To distinguish between, e::g., various intel-based unices:
# # (THE "Darwin") appears to be the sole current use, otherwise always NULL.
translate_anormcode_to_execode
:
( acf::Function,
pcs::Per_Compile_Stuff( ds::Declaration ),
Null_Or(Int) # The int option gets passed to lambda-split phases (if any)
)
->
( cs::Code_And_Data_Segments,
Null_Or( acf::Function ) # Presumably inlining stuff.
);
};
end;
## Copyright 1999, Lucent Technologies, Bell Labs
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.