SlideShare uma empresa Scribd logo
1 de 19
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!”:
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.
+++++++..+++.>++.<<+++++++++++++++.>.++
+.------.--------.>+.

Mais conteúdo relacionado

Mais procurados

OpenZFS Developer Summit Introduction
OpenZFS Developer Summit IntroductionOpenZFS Developer Summit Introduction
OpenZFS Developer Summit IntroductionMatthew 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 DataBalaBit
 
The Silence of the Canaries
The Silence of the CanariesThe Silence of the Canaries
The Silence of the CanariesKernel TLV
 
Talk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopTalk 160920 @ Cat System Workshop
Talk 160920 @ Cat System WorkshopQuey-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
 
Rust system programming language
Rust system programming languageRust system programming language
Rust system programming languagerobin_sy
 
The eID on Linux in 2015
The eID on Linux in 2015The eID on Linux in 2015
The eID on Linux in 2015Wouter Verhelst
 
Fundamental of Shell Programming
Fundamental of Shell ProgrammingFundamental of Shell Programming
Fundamental of Shell ProgrammingRahul Hada
 
Druid beginner performance tips
Druid beginner performance tipsDruid beginner performance tips
Druid beginner performance tipsvishnu 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.comGreen 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
 

Mais procurados (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
 

Destaque

Destaque (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
 

Semelhante a Programming languages

Practical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingPractical SystemTAP basics: Perl memory profiling
Practical SystemTAP basics: Perl memory profilingLubomir 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 UKHARDWARIO
 
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 SystemBo 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.pptxAnshKarwa
 
MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1MozillaPH Rust Hack & Learn Session 1
MozillaPH Rust Hack & Learn Session 1Robert '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 assemblyPhil Eaton
 
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
 
Java - A broad introduction
Java - A broad introductionJava - A broad introduction
Java - A broad introductionBirol Efe
 
Network Automation: Ansible 101
Network Automation: Ansible 101Network Automation: Ansible 101
Network Automation: Ansible 101APNIC
 
Compiler design notes phases of compiler
Compiler design notes phases of compilerCompiler design notes phases of compiler
Compiler design notes phases of compilerovidlivi91
 
C101 – Intro to Programming with C
C101 – Intro to Programming with CC101 – Intro to Programming with C
C101 – Intro to Programming with Cgpsoft_sk
 

Semelhante a 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
 

Mais de 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 TwitterDmitry 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 PeriodizationDmitry 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 PlayDmitry Zinoviev
 
Exploring the History of Mental Stigma
Exploring the History of Mental StigmaExploring the History of Mental Stigma
Exploring the History of Mental StigmaDmitry 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 NetworkDmitry 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 tweetsDmitry Zinoviev
 
Network Analysis of The Shining
Network Analysis of The ShiningNetwork Analysis of The Shining
Network Analysis of The ShiningDmitry 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 AnalysisDmitry Zinoviev
 
DaVinci Code. Network Analysis
DaVinci Code. Network AnalysisDaVinci Code. Network Analysis
DaVinci Code. Network AnalysisDmitry 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 PredictorsDmitry 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
 

Mais de 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)
 

Último

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 

Último (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 

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