CSCE 434 Lecture 3
		
		
		
		
		
		Jump to navigation
		Jump to search
		
		
	
« previous | Friday, August 30, 2013 | next »
Test all code on the CSE Linux machine (linux.cse.tamu.edu)
Compilers
Large, complex pieces of software
Two purposes:
- Translation
- High-Level → High-Level
 - High-Level → Low-level
 
 - Optimization
- Minimize Execution Time and constrain Memory consumption (focus of this class)
 - Minimize memory usage and constrain execution time
 - Minimize power consumption and constrain others
 
 
Other embedded systems optimize cost for mass-production, for example.
All compilers have to:
- generate correct code ***
 - Output should run quickly
 - Compiler should perform quickly (fastest time is )
 - Support for separate compilation (divide & conquer)
 - Diagnostics for errors (incl. syntax errors, type errors, static analysis errors)
 - Works with debugger
 - Cross language calls (e.g. for really fast algebraic implementations)
 - Consistent [1], predictable optimization
 
Check out Predictive Parsing
Footnotes
- ↑ consistent optimization: code should never run slower than it would without optimizations