Essentials of Compilation by Jeremy G. Siek
Author:Jeremy G. Siek
Language: eng
Format: epub
Publisher: MIT Press
5.5âRemove Complex Operands
The new language forms, get!, set!, begin, and while are all complex expressions. The subexpressions of set!, begin, and while are allowed to be complex. Figure 5.6 defines the output language of this pass.
Figure 5.6
is âWhile in monadic normal form.
As usual, when a complex expression appears in a grammar position that needs to be atomic, such as the argument of a primitive operator, we must introduce a temporary variable and bind it to the complex expression. This approach applies, unchanged, to handle the new language forms. For example, in the following code there are two begin expressions appearing as arguments to the + operator. The output of rco_exp is then shown, in which the begin expressions have been bound to temporary variables. Recall that let expressions in are allowed to have arbitrary expressions in their right-hand side expression, so it is fine to place begin there.
Download
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Management Strategies for the Cloud Revolution: How Cloud Computing Is Transforming Business and Why You Can't Afford to Be Left Behind by Charles Babcock(4131)
Ego Is the Enemy by Ryan Holiday(3991)
Offensive Shellcode from Scratch by Rishalin Pillay(3676)
Exploring Deepfakes by Bryan Lyon and Matt Tora(3267)
Robo-Advisor with Python by Aki Ranin(3047)
Learning C# by Developing Games with Unity 2021 by Harrison Ferrone(2875)
Speed Up Your Python with Rust by Maxwell Flitton(2852)
Liar's Poker by Michael Lewis(2812)
Agile Security Operations by Hinne Hettema(2807)
Linux Command Line and Shell Scripting Techniques by Vedran Dakic and Jasmin Redzepagic(2806)
OPNsense Beginner to Professional by Julio Cesar Bueno de Camargo(2805)
Extreme DAX by Michiel Rozema & Henk Vlootman(2790)
Essential Cryptography for JavaScript Developers by Alessandro Segala(2741)
Elevating React Web Development with Gatsby by Samuel Larsen-Disney(2732)
Python for ArcGIS Pro by Silas Toms Bill Parker(2647)
AI-Powered Commerce by Andy Pandharikar & Frederik Bussler(2642)
Incident Response Techniques for Ransomware Attacks by Oleg Skulkin(2628)
Distributed .NET with Microsoft Orleans by Bhupesh Guptha Muthiyalu Suneel Kumar Kunani(2628)
Cryptography Algorithms by Massimo Bertaccini(2627)