Compiled and Interpreted Languages

You might also like

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 15

Comparative Languages

Compiled and Interpreted Languages

SAGAR REPALE

Compiling High Level Languages


Source Code (text)

Compiler
Assembly (text)

Assembler
Relocatable Object Code (machine code without addresses) Linker/Loader Executable Code (machine code)
Compiling and Interpreting 2

The Compilation Process (1)


C++ int var1, var2; void main() { var1 = 5; var2 = 37; var2 /= var1; cout << var2 << endl; } Assembly SECTION MAIN,CODE XREF PRINTINT _MAIN MOVE.W #5,VAR1 MOVE.W #7,VAR2 MOVE.W VAR1,D1 MOVE.W VAR2,D2 EXT.L D2 DIVS.W D1,D2 MOVE.W D2,VAR2 MOVE.W VAR2,-(SP) JSR PRINTINT MOVE.W #228,D7 TRAP #14 VAR1 DS.L 1 VAR2 DS.L 1 END
3

Compiling and Interpreting

The Compilation Process (2)


00000000 00000008 00000010 00000016 0000001C 0000001E 00000020 00000026 0000002C 00000032 00000036 00000038 0000003C 00000040 33FC 33FC 3239 3439 48C2 85C1 33C2 3F39 4EB9 3E3C 4E4E 0005 00000038 0007 0000003C 00000038 0000003C 1 2 3 _MAIN 4 5 6 7 8 9 10 11 12 13 14 VAR1 15 VAR2 16 SECTION XREF MOVE.W MOVE.W MOVE.W MOVE.W EXT.L DIVS.W MOVE.W MOVE.W JSR MOVE.W TRAP DS.L DS.L END MAIN,CODE PRINTINT #5,VAR1 #7,VAR2 VAR1,D1 VAR2,D2 D2 D1,D2 D2,VAR2 VAR2,-(SP) PRINTINT #228,D7 #14 1 1

0000003C 0000003C 00000000 00E4

Compiling and Interpreting

The Compilation Process (3)


#SECTION_CODE 00000040 MAIN 000000 000010 000020 000030 33FC00050000003833FC00070000003C 32390000003834390000003C48C285C1 33C20000003C3F390000003C4EB90000 00003E3C00E44E4E0000000000000000

#LOCAL 00000004 0000000C 00000012 00000018 00000022 00000028 #XREF_32 PRINTINT 0000002E

MOVE.W

#5,VAR1

= loader = linker

Compiling and Interpreting

Advantages of Compiled Higher Languages


Abstraction of hardware details Allow a program to more easily be ported to other hardware platforms Can be tailored for specific types of applications
Web programming Logic programming

Compiling and Interpreting

Interpreted Languages
Interpreted languages are not compiled The source code is run directly
Often compiled into a more efficient pseudolanguage just before running
Only machine code can run on the CPU, so how does an interpreted language run?

The interpreter is an executable program which interprets the source code and runs the appropriate machine code.

Compiling and Interpreting

Compiled and Interpreted Languages


Compiled Source Compilation Input Executable Output Interpreter Interpreted Program Input

Output

Compiling and Interpreting

Example of Interpreted Code


#!/usr/bin/perl $var1 = 7; $var2 = 008; $var3 = $var1 * $var2; print Result: $var3\n;

$string = print program ending now\n; eval $string;


exit; $> perl myscript Result: 56 program ending now

Compiling and Interpreting

Eval()
A key advantage of interpreted languages is that they can build and execute code on-the-fly
Essentially, the compiler is built into the interpreter program

How hard would this be for a compiled language?

Compiling and Interpreting

10

Pros and Cons of Interpreted Languages


Advantages of interpreted languages
Fast (program development) and messy
Untyped variables On-the-fly variable creation Eval()

Extremely portable code Powerful Lean (only the interpreter is fat)

Compiling and Interpreting

11

Pros and Cons of Interpreted Languages


Disadvantages of interpreted languages
Much slower to execute Can be very hard to debug:
$count = 0; while ($counnt < 100) { $count++; }

Linking is an issue may not be appropriate for large-scale software development


Compiling and Interpreting 12

Programming Tradeoffs
Efficiency

Assembly
C Fortran, Pascal C++ Java, Lisp Perl, Python, Ruby, etc.

Abstraction (Ease of use, specialization, paradigm enforcing, etc.)


Compiling and Interpreting 13

Some High Level Languages


Interpreted Object-oriented Ruby, Python, Java Compiled C++ C, C++, FORTRAN, Pascal LISP, ML

Imperative

Perl

Functional

LISP, Scheme

Compiling and Interpreting

14

A Brief History of Programming Languages

Compiling and Interpreting

15

You might also like