Imperative Languages - Modern Programming Languages - Lecture Slides, Slides of Advanced Computer Programming

The key points are: Imperative Languages, Programming Languages, Amazing Variety, Factorial Function, Order of Execution, Functional Languages, Use of Recursion, Single-Valued Variables, Logic Languages, Object-Oriented Languages

Typology: Slides

2012/2013

Uploaded on 04/18/2013

palvani
palvani 🇮🇳

4.5

(2)

83 documents

1 / 39

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Programming Languages
Chapter One Modern Programming Languages, 2nd ed. 1
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27

Partial preview of the text

Download Imperative Languages - Modern Programming Languages - Lecture Slides and more Slides Advanced Computer Programming in PDF only on Docsity!

Programming Languages

Chapter One Modern Programming Languages, 2nd ed. 1

Outline

 What makes programming languages an

interesting subject?

– The amazing variety

– The odd controversies

– The intriguing evolution

– The connection to programming practice

– The many other connections

Chapter One Modern Programming Languages, 2nd ed. 2

Imperative Languages

 Example: a factorial function in C

 Hallmarks of imperative languages:

– Assignment

– Iteration

– Order of execution is critical

Chapter One Modern Programming Languages, 2nd ed. 4

int fact(int n) {

int sofar = 1;

while (n>0) sofar *= n--;

return sofar;

Functional Languages

 Example: a factorial function in ML

 Hallmarks of functional languages:

– Single-valued variables

– Heavy use of recursion

Chapter One Modern Programming Languages, 2nd ed. 5

fun fact x =

if x <= 0 then 1 else x * fact(x-1);

Logic Languages

 Example: a factorial function in Prolog

 Hallmark of logic languages

– Program expressed as rules in formal logic

Chapter One Modern Programming Languages, 2nd ed. 7

fact(X,1) :-

X =:= 1.

fact(X,Fact) :-

X > 1,

NewX is X - 1,

fact(NewX,NF),

Fact is X * NF.

Object-Oriented Languages

 Example: a Java definition for a kind of

object that can store an integer and compute

its factorial

Chapter One Modern Programming Languages, 2nd ed. 8

Object-Oriented Languages

 Hallmarks of object-oriented languages:

– Usually imperative, plus…

– Constructs to help programmers use

“objects”—little bundles of data that know how

to do things to themselves

Chapter One Modern Programming Languages, 2nd ed. 10

Strengths and Weaknesses

 The different language groups show to

advantage on different kinds of problems

 Decide for yourself at the end of the

semester, after experimenting with them

 For now, one comment: don’t jump to

conclusions based on factorial!

– Functional languages do well on such functions

– Imperative languages, a bit less well

– Logic languages, considerably less well

– Object-oriented languages need larger examples

Chapter One Modern Programming Languages, 2nd ed. 11

Example: Forth Factorial

 A stack-oriented language

 Postscript is similar

 Could be called imperative , but has little in

common with most imperative languages

Chapter One Modern Programming Languages, 2nd ed. 13

: FACTORIAL

1 SWAP BEGIN ?DUP WHILE TUCK * SWAP 1- REPEAT ;

Example: APL Factorial

 An APL expression that computes X’s factorial

 Expands X it into a vector of the integers 1..X,

then multiplies them all together

 (You would not really do it that way in APL, since

there is a predefined factorial operator: !X)

 Could be called functional , but has little in

common with most functional languages

Chapter One Modern Programming Languages, 2nd ed. 14

× / ι X

The Odd Controversies

 Programming languages are the subject of

many heated debates:

– Partisan arguments

– Language standards

– Fundamental definitions

Chapter One Modern Programming Languages, 2nd ed. 16

Language Partisans

 There is a lot of argument about the relative

merits of different languages

 Every language has partisans, who praise it

in extreme terms and defend it against all

detractors

Chapter One Modern Programming Languages, 2nd ed. 17

Basic Definitions

 Some terms refer to fuzzy concepts: all those

language family names, for example

 No problem; just remember they are fuzzy

– Bad: Is X really an object-oriented language?

– Good: What aspects of X support an object-oriented

style of programming?

 Some crisp concepts have conflicting terminology:

one person’s argument is another person’s actual

parameter

Chapter One Modern Programming Languages, 2nd ed. 19

Outline

 What makes programming languages an

interesting subject?

– The amazing variety

– The odd controversies

– The intriguing evolution

– The connection to programming practice

– The many other connections

Chapter One Modern Programming Languages, 2nd ed. 20