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

What's hot

OpenZFS Developer Summit Introduction
OpenZFS Developer Summit IntroductionOpenZFS Developer Summit Introduction
OpenZFS Developer Summit Introduction
Matthew Ahrens
 
.NET Memory Primer (Martin Kulov)
.NET Memory Primer (Martin Kulov).NET Memory Primer (Martin Kulov)
.NET Memory Primer (Martin Kulov)
ITCamp
 
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
LOADays 2015 - syslog-ng - from log collection to processing and infomation e...
BalaBit
 
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
2015. Libre Software Meeting - syslog-ng: from log collection to processing a...
BalaBit
 
State of the art logging
State of the art loggingState of the art logging
State of the art loggingBalaBit
 
Security coding c and c++ ch8(2)
Security coding c and c++   ch8(2)Security coding c and c++   ch8(2)
Security coding c and c++ ch8(2)Chia-Hao Tsai
 
SCaLE 2016 - syslog-ng: From Raw Data to Big Data
SCaLE 2016 - syslog-ng: From Raw Data to Big DataSCaLE 2016 - syslog-ng: From Raw Data to Big Data
SCaLE 2016 - syslog-ng: From Raw Data to Big Data
BalaBit
 
The Silence of the Canaries
The Silence of the CanariesThe Silence of the Canaries
The Silence of the Canaries
Kernel TLV
 
Talk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopTalk 160920 @ Cat System Workshop
Talk 160920 @ Cat System Workshop
Quey-Liang Kao
 
syslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extractionsyslog-ng: from log collection to processing and information extraction
syslog-ng: from log collection to processing and information extractionBalaBit
 
Inside debian-installer
Inside debian-installerInside debian-installer
Inside debian-installer
Wouter Verhelst
 
Rust system programming language
Rust system programming languageRust system programming language
Rust system programming language
robin_sy
 
The eID on Linux in 2015
The eID on Linux in 2015The eID on Linux in 2015
The eID on Linux in 2015
Wouter Verhelst
 
Fundamental of Shell Programming
Fundamental of Shell ProgrammingFundamental of Shell Programming
Fundamental of Shell Programming
Rahul Hada
 
Druid beginner performance tips
Druid beginner performance tipsDruid beginner performance tips
Druid beginner performance tips
vishnu rao
 
Linux basics and commands - from lynxbee.com
Linux basics and commands - from lynxbee.comLinux basics and commands - from lynxbee.com
Linux basics and commands - from lynxbee.com
Green Ecosystem
 
Thrfit从入门到精通
Thrfit从入门到精通Thrfit从入门到精通
Thrfit从入门到精通
炜龙 何
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
LogeekNightUkraine
 
Linux for Beginners
Linux for  BeginnersLinux for  Beginners
Linux for Beginners
Gobinath Loganathan
 

What's hot (19)

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

Viewers also liked

Computacion y redes de manejo
Computacion y redes de manejoComputacion y redes de manejo
Computacion y redes de manejo
Rodrigo Santillan
 
certificate_image_processing
certificate_image_processingcertificate_image_processing
certificate_image_processingAnzhou Zhang
 
Quality technologies iso 9001
Quality technologies iso 9001Quality technologies iso 9001
Quality technologies iso 9001
Alvin Sr
 
gio asset course certificate
gio asset course certificategio asset course certificate
gio asset course certificateGIO Gunn
 
MS. POWER POINT 2007 BAB 4
MS. POWER POINT 2007 BAB 4MS. POWER POINT 2007 BAB 4
MS. POWER POINT 2007 BAB 4
athaya azalia
 
Principios y valores sentido de pertenecia
Principios y valores   sentido de perteneciaPrincipios y valores   sentido de pertenecia
Principios y valores sentido de pertenecia
Grupo Impacto Creativo SAS
 
GLNG Construction ERT
GLNG Construction ERTGLNG Construction ERT
GLNG Construction ERT
David Avenell
 
Narora Atomic Power Station (NAPS) Vocational Training Report for ECE
Narora Atomic Power Station (NAPS) Vocational Training Report for ECENarora Atomic Power Station (NAPS) Vocational Training Report for ECE
Narora Atomic Power Station (NAPS) Vocational Training Report for ECE
Kushal Varshney
 
Universidad Nacional De Cajamarca2
Universidad Nacional De Cajamarca2Universidad Nacional De Cajamarca2
Universidad Nacional De Cajamarca2
alan
 

Viewers also liked (15)

Computacion y redes de manejo
Computacion y redes de manejoComputacion y redes de manejo
Computacion y redes de manejo
 
Abel cuesta
Abel cuestaAbel cuesta
Abel cuesta
 
certificate_image_processing
certificate_image_processingcertificate_image_processing
certificate_image_processing
 
Trabajo de investigaciòn
Trabajo de investigaciònTrabajo de investigaciòn
Trabajo de investigaciòn
 
Quality technologies iso 9001
Quality technologies iso 9001Quality technologies iso 9001
Quality technologies iso 9001
 
gio asset course certificate
gio asset course certificategio asset course certificate
gio asset course certificate
 
MS. POWER POINT 2007 BAB 4
MS. POWER POINT 2007 BAB 4MS. POWER POINT 2007 BAB 4
MS. POWER POINT 2007 BAB 4
 
Abel cuesta
Abel cuestaAbel cuesta
Abel cuesta
 
Principios y valores sentido de pertenecia
Principios y valores   sentido de perteneciaPrincipios y valores   sentido de pertenecia
Principios y valores sentido de pertenecia
 
CV
CVCV
CV
 
Folleto bicis abril 2013
Folleto bicis abril 2013Folleto bicis abril 2013
Folleto bicis abril 2013
 
El monchi
El monchiEl monchi
El monchi
 
GLNG Construction ERT
GLNG Construction ERTGLNG Construction ERT
GLNG Construction ERT
 
Narora Atomic Power Station (NAPS) Vocational Training Report for ECE
Narora Atomic Power Station (NAPS) Vocational Training Report for ECENarora Atomic Power Station (NAPS) Vocational Training Report for ECE
Narora Atomic Power Station (NAPS) Vocational Training Report for ECE
 
Universidad Nacional De Cajamarca2
Universidad Nacional De Cajamarca2Universidad Nacional De Cajamarca2
Universidad Nacional De Cajamarca2
 

Similar to Programming languages

Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
Lubomir Rintel
 
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UKZephyr RTOS in One Hour | HARDWARIO @ IoT North UK
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
HARDWARIO
 
Script of Scripts Polyglot Notebook and Workflow System
Script of ScriptsPolyglot Notebook and Workflow SystemScript of ScriptsPolyglot Notebook and Workflow System
Script of Scripts Polyglot Notebook and Workflow System
Bo Peng
 
Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)
Itzik Kotler
 
Node.js for Rubists
Node.js for RubistsNode.js for Rubists
Node.js for RubistsSagiv Ofek
 
NASM Introduction.pptx
NASM Introduction.pptxNASM Introduction.pptx
NASM Introduction.pptx
AnshKarwa
 
NANO266 - Lecture 9 - Tools of the Modeling Trade
NANO266 - Lecture 9 - Tools of the Modeling TradeNANO266 - Lecture 9 - Tools of the Modeling Trade
NANO266 - Lecture 9 - Tools of the Modeling Trade
University of California, San Diego
 
MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1
Robert 'Bob' Reyes
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?OpenFest team
 
Compiler basics: lisp to assembly
Compiler basics: lisp to assemblyCompiler basics: lisp to assembly
Compiler basics: lisp to assembly
Phil Eaton
 
Conflux: gpgpu for .net (en)
Conflux: gpgpu for .net (en)Conflux: gpgpu for .net (en)
Conflux: gpgpu for .net (en)Andrei Varanovich
 
Conflux:gpgpu for .net (en)
Conflux:gpgpu for .net (en)Conflux:gpgpu for .net (en)
Conflux:gpgpu for .net (en)
Andrei Varanovich
 
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesTI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesEelco Visser
 
Ropython-windbg-python-extensions
Ropython-windbg-python-extensionsRopython-windbg-python-extensions
Ropython-windbg-python-extensions
Alin Gabriel Serdean
 
Java - A broad introduction
Java - A broad introductionJava - A broad introduction
Java - A broad introduction
Birol Efe
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101
APNIC
 
Next .NET and C#
Next .NET and C#Next .NET and C#
Next .NET and C#
Bertrand Le Roy
 
Linux binary Exploitation
Linux binary ExploitationLinux binary Exploitation
Linux binary Exploitation
Arcangelo Saracino
 
Compiler design notes phases of compiler
Compiler design notes phases of compilerCompiler design notes phases of compiler
Compiler design notes phases of compiler
ovidlivi91
 
C101 – Intro to Programming with C
C101 – Intro to Programming with CC101 – Intro to Programming with C
C101 – Intro to Programming with C
gpsoft_sk
 

Similar to Programming languages (20)

Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profiling
 
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UKZephyr RTOS in One Hour | HARDWARIO @ IoT North UK
Zephyr RTOS in One Hour | HARDWARIO @ IoT North UK
 
Script of Scripts Polyglot Notebook and Workflow System
Script of ScriptsPolyglot Notebook and Workflow SystemScript of ScriptsPolyglot Notebook and Workflow System
Script of Scripts Polyglot Notebook and Workflow System
 
Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)Hack Like It's 2013 (The Workshop)
Hack Like It's 2013 (The Workshop)
 
Node.js for Rubists
Node.js for RubistsNode.js for Rubists
Node.js for Rubists
 
NASM Introduction.pptx
NASM Introduction.pptxNASM Introduction.pptx
NASM Introduction.pptx
 
NANO266 - Lecture 9 - Tools of the Modeling Trade
NANO266 - Lecture 9 - Tools of the Modeling TradeNANO266 - Lecture 9 - Tools of the Modeling Trade
NANO266 - Lecture 9 - Tools of the Modeling Trade
 
MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1
 
Why kernelspace sucks?
Why kernelspace sucks?Why kernelspace sucks?
Why kernelspace sucks?
 
Compiler basics: lisp to assembly
Compiler basics: lisp to assemblyCompiler basics: lisp to assembly
Compiler basics: lisp to assembly
 
Conflux: gpgpu for .net (en)
Conflux: gpgpu for .net (en)Conflux: gpgpu for .net (en)
Conflux: gpgpu for .net (en)
 
Conflux:gpgpu for .net (en)
Conflux:gpgpu for .net (en)Conflux:gpgpu for .net (en)
Conflux:gpgpu for .net (en)
 
TI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific LanguagesTI1220 Lecture 14: Domain-Specific Languages
TI1220 Lecture 14: Domain-Specific Languages
 
Ropython-windbg-python-extensions
Ropython-windbg-python-extensionsRopython-windbg-python-extensions
Ropython-windbg-python-extensions
 
Java - A broad introduction
Java - A broad introductionJava - A broad introduction
Java - A broad introduction
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101
 
Next .NET and C#
Next .NET and C#Next .NET and C#
Next .NET and C#
 
Linux binary Exploitation
Linux binary ExploitationLinux binary Exploitation
Linux binary Exploitation
 
Compiler design notes phases of compiler
Compiler design notes phases of compilerCompiler design notes phases of compiler
Compiler design notes phases of compiler
 
C101 – Intro to Programming with C
C101 – Intro to Programming with CC101 – Intro to Programming with C
C101 – Intro to Programming with C
 

More from Dmitry Zinoviev

Machine Learning Basics for Dummies (no math!)
Machine Learning Basics for Dummies (no math!)Machine Learning Basics for Dummies (no math!)
Machine Learning Basics for Dummies (no math!)
Dmitry Zinoviev
 
WHat is star discourse in post-Soviet film journals?
WHat is star discourse in post-Soviet film journals?WHat is star discourse in post-Soviet film journals?
WHat is star discourse in post-Soviet film journals?
Dmitry Zinoviev
 
The “Musk” Effect at Twitter
The “Musk” Effect at TwitterThe “Musk” Effect at Twitter
The “Musk” Effect at Twitter
Dmitry Zinoviev
 
Are Twitter Networks of Regional Entrepreneurs Gendered?
Are Twitter Networks of Regional Entrepreneurs Gendered?Are Twitter Networks of Regional Entrepreneurs Gendered?
Are Twitter Networks of Regional Entrepreneurs Gendered?
Dmitry Zinoviev
 
Using Complex Network Analysis for Periodization
Using Complex Network Analysis for PeriodizationUsing Complex Network Analysis for Periodization
Using Complex Network Analysis for Periodization
Dmitry Zinoviev
 
Algorithms
AlgorithmsAlgorithms
Algorithms
Dmitry Zinoviev
 
Text analysis of The Book Club Play
Text analysis of The Book Club PlayText analysis of The Book Club Play
Text analysis of The Book Club Play
Dmitry Zinoviev
 
Exploring the History of Mental Stigma
Exploring the History of Mental StigmaExploring the History of Mental Stigma
Exploring the History of Mental Stigma
Dmitry Zinoviev
 
Roles and Words in a massive NSSI-Related Interaction Network
Roles and Words in a massive NSSI-Related Interaction NetworkRoles and Words in a massive NSSI-Related Interaction Network
Roles and Words in a massive NSSI-Related Interaction Network
Dmitry Zinoviev
 
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
Dmitry Zinoviev
 
Network analysis of the 2016 USA presidential campaign tweets
Network analysis of the 2016 USA presidential campaign tweetsNetwork analysis of the 2016 USA presidential campaign tweets
Network analysis of the 2016 USA presidential campaign tweets
Dmitry Zinoviev
 
Network Analysis of The Shining
Network Analysis of The ShiningNetwork Analysis of The Shining
Network Analysis of The Shining
Dmitry Zinoviev
 
The Lord of the Ring. A Network Analysis
The Lord of the Ring. A Network AnalysisThe Lord of the Ring. A Network Analysis
The Lord of the Ring. A Network Analysis
Dmitry Zinoviev
 
Pickling and CSV
Pickling and CSVPickling and CSV
Pickling and CSV
Dmitry Zinoviev
 
Python overview
Python overviewPython overview
Python overview
Dmitry Zinoviev
 
Welcome to CS310!
Welcome to CS310!Welcome to CS310!
Welcome to CS310!
Dmitry Zinoviev
 
The P4 of Networkacy
The P4 of NetworkacyThe P4 of Networkacy
The P4 of Networkacy
Dmitry Zinoviev
 
DaVinci Code. Network Analysis
DaVinci Code. Network AnalysisDaVinci Code. Network Analysis
DaVinci Code. Network Analysis
Dmitry Zinoviev
 
Soviet Popular Music Landscape: Community Structure and Success Predictors
Soviet Popular Music Landscape: Community Structure and Success PredictorsSoviet Popular Music Landscape: Community Structure and Success Predictors
Soviet Popular Music Landscape: Community Structure and Success Predictors
Dmitry Zinoviev
 
C for Java programmers (part 2)
C for Java programmers (part 2)C for Java programmers (part 2)
C for Java programmers (part 2)
Dmitry Zinoviev
 

More from Dmitry Zinoviev (20)

Machine Learning Basics for Dummies (no math!)
Machine Learning Basics for Dummies (no math!)Machine Learning Basics for Dummies (no math!)
Machine Learning Basics for Dummies (no math!)
 
WHat is star discourse in post-Soviet film journals?
WHat is star discourse in post-Soviet film journals?WHat is star discourse in post-Soviet film journals?
WHat is star discourse in post-Soviet film journals?
 
The “Musk” Effect at Twitter
The “Musk” Effect at TwitterThe “Musk” Effect at Twitter
The “Musk” Effect at Twitter
 
Are Twitter Networks of Regional Entrepreneurs Gendered?
Are Twitter Networks of Regional Entrepreneurs Gendered?Are Twitter Networks of Regional Entrepreneurs Gendered?
Are Twitter Networks of Regional Entrepreneurs Gendered?
 
Using Complex Network Analysis for Periodization
Using Complex Network Analysis for PeriodizationUsing Complex Network Analysis for Periodization
Using Complex Network Analysis for Periodization
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Text analysis of The Book Club Play
Text analysis of The Book Club PlayText analysis of The Book Club Play
Text analysis of The Book Club Play
 
Exploring the History of Mental Stigma
Exploring the History of Mental StigmaExploring the History of Mental Stigma
Exploring the History of Mental Stigma
 
Roles and Words in a massive NSSI-Related Interaction Network
Roles and Words in a massive NSSI-Related Interaction NetworkRoles and Words in a massive NSSI-Related Interaction Network
Roles and Words in a massive NSSI-Related Interaction Network
 
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...“A Quaint and Curious Volume of Forgotten Lore,” or an Exercise in Digital Hu...
“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 2016 USA presidential campaign tweetsNetwork analysis of the 2016 USA presidential campaign tweets
Network analysis of the 2016 USA presidential campaign tweets
 
Network Analysis of The Shining
Network Analysis of The ShiningNetwork Analysis of The Shining
Network Analysis of The Shining
 
The Lord of the Ring. A Network Analysis
The Lord of the Ring. A Network AnalysisThe Lord of the Ring. A Network Analysis
The Lord of the Ring. A Network Analysis
 
Pickling and CSV
Pickling and CSVPickling and CSV
Pickling and CSV
 
Python overview
Python overviewPython overview
Python overview
 
Welcome to CS310!
Welcome to CS310!Welcome to CS310!
Welcome to CS310!
 
The P4 of Networkacy
The P4 of NetworkacyThe P4 of Networkacy
The P4 of Networkacy
 
DaVinci Code. Network Analysis
DaVinci Code. Network AnalysisDaVinci Code. Network Analysis
DaVinci Code. Network Analysis
 
Soviet Popular Music Landscape: Community Structure and Success Predictors
Soviet Popular Music Landscape: Community Structure and Success PredictorsSoviet Popular Music Landscape: Community Structure and Success Predictors
Soviet Popular Music Landscape: Community Structure and Success Predictors
 
C for Java programmers (part 2)
C for Java programmers (part 2)C for Java programmers (part 2)
C for Java programmers (part 2)
 

Recently uploaded

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 

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!”: ++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+. +++++++..+++.>++.<<+++++++++++++++.>.++ +.------.--------.>+.