Programming Languages Janyl Jumadinova September 1-3, 2020 Janyl - - PowerPoint PPT Presentation

programming languages
SMART_READER_LITE
LIVE PREVIEW

Programming Languages Janyl Jumadinova September 1-3, 2020 Janyl - - PowerPoint PPT Presentation

Programming Languages Janyl Jumadinova September 1-3, 2020 Janyl Jumadinova Programming Languages September 1-3, 2020 1 / 10 What this course is NOT about Learning to program in [insert language here] - but this course should make it easier


slide-1
SLIDE 1

Programming Languages

Janyl Jumadinova September 1-3, 2020

Janyl Jumadinova Programming Languages September 1-3, 2020 1 / 10

slide-2
SLIDE 2

What this course is NOT about

Learning to program in [insert language here]

  • but this course should make it easier to learn new languages

Janyl Jumadinova Programming Languages September 1-3, 2020 2 / 10

slide-3
SLIDE 3

What this course is NOT about

Learning to program in [insert language here]

  • but this course should make it easier to learn new languages

Learning tiny bits about lots of different languages

  • but we will use examples from many languages to examine more

general principles

Janyl Jumadinova Programming Languages September 1-3, 2020 2 / 10

slide-4
SLIDE 4

What this course is NOT about

Learning to program in [insert language here]

  • but this course should make it easier to learn new languages

Learning tiny bits about lots of different languages

  • but we will use examples from many languages to examine more

general principles “Language wars” (“Which is better, Java or C++?”)

  • but you will learn about criteria that can be used to compare

different languages

Janyl Jumadinova Programming Languages September 1-3, 2020 2 / 10

slide-5
SLIDE 5

What this course is about

How are languages designed and implemented?

  • Specifying syntax and semantics, compiled vs. interpreted, etc.

Janyl Jumadinova Programming Languages September 1-3, 2020 3 / 10

slide-6
SLIDE 6

What this course is about

How are languages designed and implemented?

  • Specifying syntax and semantics, compiled vs. interpreted, etc.

How do such choices affect ease of use, efficiency, scalability, and

  • ther criteria?
  • Example: How should recursive calls be implemented? How does

“garbage collection” work?

Janyl Jumadinova Programming Languages September 1-3, 2020 3 / 10

slide-7
SLIDE 7

What this course is about

How are languages designed and implemented?

  • Specifying syntax and semantics, compiled vs. interpreted, etc.

How do such choices affect ease of use, efficiency, scalability, and

  • ther criteria?
  • Example: How should recursive calls be implemented? How does

“garbage collection” work? What are the different programming paradigms?

  • Example: Why would anyone ever use a language like ML rather

than C++ or Java?

Janyl Jumadinova Programming Languages September 1-3, 2020 3 / 10

slide-8
SLIDE 8

Why Study Programming Languages?

Janyl Jumadinova Programming Languages September 1-3, 2020 4 / 10

slide-9
SLIDE 9

Why Study Programming Languages?

Help you choose a language.

Janyl Jumadinova Programming Languages September 1-3, 2020 4 / 10

slide-10
SLIDE 10

Why Study Programming Languages?

Help you choose a language. Make it easier to learn new languages.

Janyl Jumadinova Programming Languages September 1-3, 2020 4 / 10

slide-11
SLIDE 11

Why Study Programming Languages?

Help you choose a language. Make it easier to learn new languages. Help you make better use of whatever language you use.

Image credit: https://pixabay.com Janyl Jumadinova Programming Languages September 1-3, 2020 4 / 10

slide-12
SLIDE 12

Programming Language Paradigms

Janyl Jumadinova Programming Languages September 1-3, 2020 5 / 10

slide-13
SLIDE 13

Programming Language Paradigms

Janyl Jumadinova Programming Languages September 1-3, 2020 5 / 10

slide-14
SLIDE 14

Programming Language Paradigms

Image credits: https://thepafhelper.blogspot.com and PLP book Janyl Jumadinova Programming Languages September 1-3, 2020 5 / 10

slide-15
SLIDE 15

What makes a language successful?

Janyl Jumadinova Programming Languages September 1-3, 2020 6 / 10

slide-16
SLIDE 16

Language Evaluation Criteria

Readability: the ease with which programs can be read and understood

Janyl Jumadinova Programming Languages September 1-3, 2020 7 / 10

slide-17
SLIDE 17

Language Evaluation Criteria

Readability: the ease with which programs can be read and understood Writability: the ease with which a language can be used to create programs

Janyl Jumadinova Programming Languages September 1-3, 2020 7 / 10

slide-18
SLIDE 18

Language Evaluation Criteria

Readability: the ease with which programs can be read and understood Writability: the ease with which a language can be used to create programs Reliability: conformance to specifications

Janyl Jumadinova Programming Languages September 1-3, 2020 7 / 10

slide-19
SLIDE 19

Language Evaluation Criteria

Readability: the ease with which programs can be read and understood Writability: the ease with which a language can be used to create programs Reliability: conformance to specifications Cost: the ultimate total cost

Janyl Jumadinova Programming Languages September 1-3, 2020 7 / 10

slide-20
SLIDE 20

Art of Programming Language Design Activity

”...design [is] the intentional creation of plans for a new kind of thing”. Parsons

Janyl Jumadinova Programming Languages September 1-3, 2020 8 / 10

slide-21
SLIDE 21

Art of Programming Language Design Activity

”...design [is] the intentional creation of plans for a new kind of thing”. Parsons Choose one programming language Working in a group, investigate the following:

1

Key characteristics of the language design.

2

Historical context (how it started, when, by whom, the first language, etc.).

3

The purpose/usage (why is it there).

Prepare to share your findings.

Image credit: https://pixabay.com Janyl Jumadinova Programming Languages September 1-3, 2020 8 / 10

slide-22
SLIDE 22

Why So Many Programming Languages?

Janyl Jumadinova Programming Languages September 1-3, 2020 9 / 10

slide-23
SLIDE 23

Why So Many Programming Languages?

Evolution

Janyl Jumadinova Programming Languages September 1-3, 2020 9 / 10

slide-24
SLIDE 24

Why So Many Programming Languages?

Evolution Socio-economic factors

Janyl Jumadinova Programming Languages September 1-3, 2020 9 / 10

slide-25
SLIDE 25

Why So Many Programming Languages?

Evolution Socio-economic factors Special purposes

Janyl Jumadinova Programming Languages September 1-3, 2020 9 / 10

slide-26
SLIDE 26

Why So Many Programming Languages?

Evolution Socio-economic factors Special purposes Special hardware

Janyl Jumadinova Programming Languages September 1-3, 2020 9 / 10

slide-27
SLIDE 27

Why So Many Programming Languages?

Evolution Socio-economic factors Special purposes Special hardware Range of ideas

Janyl Jumadinova Programming Languages September 1-3, 2020 9 / 10

slide-28
SLIDE 28

Homework

Before our class next week, make sure you have Docker set up and working. Check

  • ut department’s video (on Slack)
  • verviewing its setup.

Janyl Jumadinova Programming Languages September 1-3, 2020 10 / 10