SlideShare a Scribd company logo
Programming Languages
We Haz It: ~700 titles on Wikipedia
TIOBE Top 20
2016 2015 2016 2015
Java 1 1 Assembly 11 12
C 2 2 Swift 12 15
C++ 3 3 Ruby 13 10
C# 4 4 Visual Basic 14 13
Python 5 5 Delphi 15 11
JavaScript 6 8 Go 16 65
PHP 7 6 Groovy 17 32
VB .Net 8 7 R 18 20
Perl 9 9 Matlab 19 17
Objective C 10 14 SQL 20 18
TIOBE Web Site
Assembly Languages
● Directly correspond to machine languages
● Allow to address memory in a symbolic way (“variables”)
● Examples:
– Microsoft assembler (masm, 1981), GNU assembler (gas),
Netwide assembler (nasm)
Netwide Assembler (nasm)
global _start
section .text
_start: mov eax, 4
mov ebx, 1
mov ecx, msg
mov edx, msg.len
int 0x80 ; write
mov eax, 1
mov ebx, 0
int 0x80 ; exit(0)
section .data
msg: db "Hello, world!", 10
.len: equ $ - msg
Procedural Languages
● A program composed of units (modules)
● A unit is called a procedure, function, routine, subroutine,
method
● Examples:
– Fortran (1957), Algol (1958), Cobol (1959), PL/I (1964),
BASIC (1964), Pascal (1970), C (1972), Ada (1977),
Modula-2 (1978), Rapira (1980), C++ (1983), Occam
(1983), Python (1991), Visual Basic 91991), Java (1995),
C# (2000), Go (2009)
FORTRAN (Fortran)
● “Formula Translation.” First general-purpose language
PROGRAM AVERAGE
REAL X,Y
WRITE (*,*) "Input x:"
READ (*,*) X
WRITE (*,*) "Input y:"
READ (*,*) Y
WRITE (*,'(a,g12.4)') 'Average = ', (x+y)/2
END PROGRAM AVERAGE
● Data type determined by the first letter of the identifier: “In
Fortran, GOD is REAL (unless declared INTEGER).”
C
● The language of Unix system programming
● The “founding father” of most modern languages
#include <stdio.h>
int main(void)
{
int id;
scanf("%d", &id)
printf("hello, %dn", id);
}
● Great flexibility; great power; great responsibility
Java
● A “safer” C
● Object-oriented: data and methods grouped into objects; no
global variables
● Uses virtual machine (VM), runs on anything that has a VM
class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Modula-2
● A “Niklaus Wirth” language
● Based on Pascal
● Suitable for system programming (but not perfect); supports
multiprogramming
MODULE Hello;
FROM STextIO IMPORT WriteString;
BEGIN
WriteString("Hello World!");
END Hello.
Functional Languages
● Programs and subroutines defined as mathematical functions
● Pure* languages do not have variables at all; Python is impure
● Examples:
– Lisp (1958), APL (1964), C (1972), ML (1973), Erlang
(1986), Haskell* (1990), Python (1991), Ruby (1995), C#
(2000), Scala (2004), Java 8 (2014)
Lisp
● Favorite language for AI
● Lists are the only major data structure; a program itself is a list
● Modern implementations: Common Lisp, Clojure, Scheme
(defun check (name age)
(if (and (eq name "James") (> age 21))
(list "Welcome, James!" age)
(list "Go home, kid!" nil)))
(prin1 (check "Paul" 24))
● “Lots of Irritating Single Parentheses”
Erlang
● Ericsson Language, developed for telecom switches
● Concurrent, distributed, fault-tolerant, soft real-time
● Non-stop applications, code hot swapping, runs on VM
● Has built-in database and Web server
-module(fib).
-export([fib/1]).
fib(1) -> 1;
fib(2) -> 1;
fib(N) -> fib(N - 2) + fib(N - 1).
Query Languages
● Designed to insert data into and extract data from databases
and other information retrieval systems
● Declarative: describe a problem rather than define a solution
● Examples:
– SQL/MySQL (1974), XQuery (2007)
SELECT author,title
FROM book
WHERE price > 100.00
ORDER BY author;
Command Line Languages
● Means of user interaction with the operating system
● Provide prompt; accept commands with optional parameters
● Allow limited support for procedural programming
● Examples:
– Sh (1977), csh (1978), tcsh (1983), ksh (1983), bash (1989),
zsh (1990)
C Shell / TC Shell
● The Unix system written in C; the C shell is the standard Unix
shell
● Provides command history and editing, directory stack, file
name completion, aliases, wildcarding, piping, background
execution
if ( $days > 365 ) then
echo This is over a year.
endif
Little Languages
● Serve a specialized problem domain
● Example:
– awk (1977; text processing and data extraction)
$1>0 { s += $1 }
END { print s }
Esoteric Languages
● Because it's fun :)
● Examples:
– Lolcode, Brainfuck
Lolcode
● Created in 2007 by Adam Lindsay (Lancaster University).
HAI 1.2
CAN HAS STDIO?
PLZ OPEN FILE "LOLCATS.TXT"?
AWSUM THX
VISIBLE FILE
O NOES
INVISIBLE "ERROR!"
KTHXBYE
Brainfuck
● An esoteric language notable for its extreme minimalism. 100
byte compiler!
“Hello world!”:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.
+++++++..+++.>++.<<+++++++++++++++.>.++
+.------.--------.>+.

More Related Content

PDF
Tips and Tricks for Increased Development Efficiency
DOCX
Bsdtw17: george neville neil: realities of dtrace on free-bsd
PDF
Experimental dtrace
PPTX
بسم الله الرحمن الرحیم
PPTX
Introduction to Sublime text 2
PDF
Introduction to Redis
PDF
[DSC] Introduction to Binary Exploitation
ODP
Informix Expedition Through Connectivity
Tips and Tricks for Increased Development Efficiency
Bsdtw17: george neville neil: realities of dtrace on free-bsd
Experimental dtrace
بسم الله الرحمن الرحیم
Introduction to Sublime text 2
Introduction to Redis
[DSC] Introduction to Binary Exploitation
Informix Expedition Through Connectivity

What's hot (19)

PDF
OpenZFS Developer Summit Introduction
PDF
.NET Memory Primer (Martin Kulov)
PDF
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
PDF
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
PPTX
State of the art logging
PDF
Security coding c and c++ ch8(2)
PDF
SCaLE 2016 - syslog-ng: From Raw Data to Big Data
PPTX
The Silence of the Canaries
PDF
Talk 160920 @ Cat System Workshop
PDF
syslog-ng: from log collection to processing and information extraction
ODP
Inside debian-installer
PDF
Rust system programming language
ODP
The eID on Linux in 2015
PDF
Fundamental of Shell Programming
PPTX
Druid beginner performance tips
PDF
Linux basics and commands - from lynxbee.com
PDF
Thrfit从入门到精通
PDF
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
PDF
Linux for Beginners
OpenZFS Developer Summit Introduction
.NET Memory Primer (Martin Kulov)
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
State of the art logging
Security coding c and c++ ch8(2)
SCaLE 2016 - syslog-ng: From Raw Data to Big Data
The Silence of the Canaries
Talk 160920 @ Cat System Workshop
syslog-ng: from log collection to processing and information extraction
Inside debian-installer
Rust system programming language
The eID on Linux in 2015
Fundamental of Shell Programming
Druid beginner performance tips
Linux basics and commands - from lynxbee.com
Thrfit从入门到精通
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Linux for Beginners
Ad

Viewers also liked (15)

DOCX
Computacion y redes de manejo
DOCX
PDF
certificate_image_processing
PDF
Trabajo de investigaciòn
PDF
Quality technologies iso 9001
PDF
gio asset course certificate
PPTX
MS. POWER POINT 2007 BAB 4
DOCX
PPTX
Principios y valores sentido de pertenecia
PDF
Folleto bicis abril 2013
PDF
GLNG Construction ERT
DOCX
Narora Atomic Power Station (NAPS) Vocational Training Report for ECE
PPT
Universidad Nacional De Cajamarca2
Computacion y redes de manejo
certificate_image_processing
Trabajo de investigaciòn
Quality technologies iso 9001
gio asset course certificate
MS. POWER POINT 2007 BAB 4
Principios y valores sentido de pertenecia
Folleto bicis abril 2013
GLNG Construction ERT
Narora Atomic Power Station (NAPS) Vocational Training Report for ECE
Universidad Nacional De Cajamarca2
Ad

Similar to Programming languages (20)

PDF
Practical SystemTAP basics: Perl memory profiling
PDF
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
PPTX
Script of Scripts Polyglot Notebook and Workflow System
PDF
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
PDF
Hack Like It's 2013 (The Workshop)
PDF
Node.js for Rubists
PPTX
NASM Introduction.pptx
PDF
NANO266 - Lecture 9 - Tools of the Modeling Trade
PPTX
MozillaPH Rust Hack & Learn Session 1
PDF
Why kernelspace sucks?
PPTX
Conflux: gpgpu for .net (en)
PPTX
Conflux:gpgpu for .net (en)
PDF
Introduction to C Programming | Importance of Learning C
PDF
TI1220 Lecture 14: Domain-Specific Languages
PPTX
Ropython-windbg-python-extensions
PPTX
Java - A broad introduction
PDF
Network Automation: Ansible 101
PPTX
Next .NET and C#
PDF
Linux binary Exploitation
PDF
Compiler design notes phases of compiler
Practical SystemTAP basics: Perl memory profiling
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
Script of Scripts Polyglot Notebook and Workflow System
linux_internals_2.3 (1).pdf àaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Hack Like It's 2013 (The Workshop)
Node.js for Rubists
NASM Introduction.pptx
NANO266 - Lecture 9 - Tools of the Modeling Trade
MozillaPH Rust Hack & Learn Session 1
Why kernelspace sucks?
Conflux: gpgpu for .net (en)
Conflux:gpgpu for .net (en)
Introduction to C Programming | Importance of Learning C
TI1220 Lecture 14: Domain-Specific Languages
Ropython-windbg-python-extensions
Java - A broad introduction
Network Automation: Ansible 101
Next .NET and C#
Linux binary Exploitation
Compiler design notes phases of compiler

More from Dmitry Zinoviev (20)

PDF
What You Can Learn from Obscure Programming Languages
PDF
Machine Learning Basics for Dummies (no math!)
PDF
WHat is star discourse in post-Soviet film journals?
PDF
The “Musk” Effect at Twitter
PDF
Are Twitter Networks of Regional Entrepreneurs Gendered?
PDF
Using Complex Network Analysis for Periodization
PDF
Algorithms
PDF
Text analysis of The Book Club Play
ODP
Exploring the History of Mental Stigma
ODP
Roles and Words in a massive NSSI-Related Interaction Network
PDF
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
PDF
Network analysis of the 2016 USA presidential campaign tweets
PDF
Network Analysis of The Shining
PDF
The Lord of the Ring. A Network Analysis
PPTX
Pickling and CSV
PPTX
Python overview
PPTX
Welcome to CS310!
ODP
The P4 of Networkacy
PDF
DaVinci Code. Network Analysis
PDF
Soviet Popular Music Landscape: Community Structure and Success Predictors
What You Can Learn from Obscure Programming Languages
Machine Learning Basics for Dummies (no math!)
WHat is star discourse in post-Soviet film journals?
The “Musk” Effect at Twitter
Are Twitter Networks of Regional Entrepreneurs Gendered?
Using Complex Network Analysis for Periodization
Algorithms
Text analysis of The Book Club Play
Exploring the History of Mental Stigma
Roles and Words in a massive NSSI-Related Interaction Network
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
Network analysis of the 2016 USA presidential campaign tweets
Network Analysis of The Shining
The Lord of the Ring. A Network Analysis
Pickling and CSV
Python overview
Welcome to CS310!
The P4 of Networkacy
DaVinci Code. Network Analysis
Soviet Popular Music Landscape: Community Structure and Success Predictors

Recently uploaded (20)

PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Electronic commerce courselecture one. Pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Advanced methodologies resolving dimensionality complications for autism neur...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Electronic commerce courselecture one. Pdf
Programs and apps: productivity, graphics, security and other tools
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Mobile App Security Testing_ A Comprehensive Guide.pdf
Building Integrated photovoltaic BIPV_UPV.pdf

Programming languages

  • 1. Programming Languages We Haz It: ~700 titles on Wikipedia
  • 2. TIOBE Top 20 2016 2015 2016 2015 Java 1 1 Assembly 11 12 C 2 2 Swift 12 15 C++ 3 3 Ruby 13 10 C# 4 4 Visual Basic 14 13 Python 5 5 Delphi 15 11 JavaScript 6 8 Go 16 65 PHP 7 6 Groovy 17 32 VB .Net 8 7 R 18 20 Perl 9 9 Matlab 19 17 Objective C 10 14 SQL 20 18 TIOBE Web Site
  • 3. Assembly Languages ● Directly correspond to machine languages ● Allow to address memory in a symbolic way (“variables”) ● Examples: – Microsoft assembler (masm, 1981), GNU assembler (gas), Netwide assembler (nasm)
  • 4. Netwide Assembler (nasm) global _start section .text _start: mov eax, 4 mov ebx, 1 mov ecx, msg mov edx, msg.len int 0x80 ; write mov eax, 1 mov ebx, 0 int 0x80 ; exit(0) section .data msg: db "Hello, world!", 10 .len: equ $ - msg
  • 5. Procedural Languages ● A program composed of units (modules) ● A unit is called a procedure, function, routine, subroutine, method ● Examples: – Fortran (1957), Algol (1958), Cobol (1959), PL/I (1964), BASIC (1964), Pascal (1970), C (1972), Ada (1977), Modula-2 (1978), Rapira (1980), C++ (1983), Occam (1983), Python (1991), Visual Basic 91991), Java (1995), C# (2000), Go (2009)
  • 6. FORTRAN (Fortran) ● “Formula Translation.” First general-purpose language PROGRAM AVERAGE REAL X,Y WRITE (*,*) "Input x:" READ (*,*) X WRITE (*,*) "Input y:" READ (*,*) Y WRITE (*,'(a,g12.4)') 'Average = ', (x+y)/2 END PROGRAM AVERAGE ● Data type determined by the first letter of the identifier: “In Fortran, GOD is REAL (unless declared INTEGER).”
  • 7. C ● The language of Unix system programming ● The “founding father” of most modern languages #include <stdio.h> int main(void) { int id; scanf("%d", &id) printf("hello, %dn", id); } ● Great flexibility; great power; great responsibility
  • 8. Java ● A “safer” C ● Object-oriented: data and methods grouped into objects; no global variables ● Uses virtual machine (VM), runs on anything that has a VM class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
  • 9. Modula-2 ● A “Niklaus Wirth” language ● Based on Pascal ● Suitable for system programming (but not perfect); supports multiprogramming MODULE Hello; FROM STextIO IMPORT WriteString; BEGIN WriteString("Hello World!"); END Hello.
  • 10. Functional Languages ● Programs and subroutines defined as mathematical functions ● Pure* languages do not have variables at all; Python is impure ● Examples: – Lisp (1958), APL (1964), C (1972), ML (1973), Erlang (1986), Haskell* (1990), Python (1991), Ruby (1995), C# (2000), Scala (2004), Java 8 (2014)
  • 11. Lisp ● Favorite language for AI ● Lists are the only major data structure; a program itself is a list ● Modern implementations: Common Lisp, Clojure, Scheme (defun check (name age) (if (and (eq name "James") (> age 21)) (list "Welcome, James!" age) (list "Go home, kid!" nil))) (prin1 (check "Paul" 24)) ● “Lots of Irritating Single Parentheses”
  • 12. Erlang ● Ericsson Language, developed for telecom switches ● Concurrent, distributed, fault-tolerant, soft real-time ● Non-stop applications, code hot swapping, runs on VM ● Has built-in database and Web server -module(fib). -export([fib/1]). fib(1) -> 1; fib(2) -> 1; fib(N) -> fib(N - 2) + fib(N - 1).
  • 13. Query Languages ● Designed to insert data into and extract data from databases and other information retrieval systems ● Declarative: describe a problem rather than define a solution ● Examples: – SQL/MySQL (1974), XQuery (2007) SELECT author,title FROM book WHERE price > 100.00 ORDER BY author;
  • 14. Command Line Languages ● Means of user interaction with the operating system ● Provide prompt; accept commands with optional parameters ● Allow limited support for procedural programming ● Examples: – Sh (1977), csh (1978), tcsh (1983), ksh (1983), bash (1989), zsh (1990)
  • 15. C Shell / TC Shell ● The Unix system written in C; the C shell is the standard Unix shell ● Provides command history and editing, directory stack, file name completion, aliases, wildcarding, piping, background execution if ( $days > 365 ) then echo This is over a year. endif
  • 16. Little Languages ● Serve a specialized problem domain ● Example: – awk (1977; text processing and data extraction) $1>0 { s += $1 } END { print s }
  • 17. Esoteric Languages ● Because it's fun :) ● Examples: – Lolcode, Brainfuck
  • 18. Lolcode ● Created in 2007 by Adam Lindsay (Lancaster University). HAI 1.2 CAN HAS STDIO? PLZ OPEN FILE "LOLCATS.TXT"? AWSUM THX VISIBLE FILE O NOES INVISIBLE "ERROR!" KTHXBYE
  • 19. Brainfuck ● An esoteric language notable for its extreme minimalism. 100 byte compiler! “Hello world!”: ++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+. +++++++..+++.>++.<<+++++++++++++++.>.++ +.------.--------.>+.