SlideShare a Scribd company logo
1 of 17
Download to read offline
There and back again
A tale of programming languages
The problem
What is a programming language?
What composes a programming language?
Why are there a lot of them?
How everything started?
00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............|
00000010 02 00 03 00 01 00 00 00 80 80 04 08 34 00 00 00 |............4...|
00000020 c8 00 00 00 00 00 00 00 34 00 20 00 02 00 28 00 |........4. ...(.|
00000030 04 00 03 00 01 00 00 00 00 00 00 00 00 80 04 08 |................|
00000040 00 80 04 08 9d 00 00 00 9d 00 00 00 05 00 00 00 |................|
00000050 00 10 00 00 01 00 00 00 a0 00 00 00 a0 90 04 08 |................|
00000060 a0 90 04 08 0e 00 00 00 0e 00 00 00 06 00 00 00 |................|
00000070 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000080 ba 0e 00 00 00 b9 a0 90 04 08 bb 01 00 00 00 b8 |................|
00000090 04 00 00 00 cd 80 b8 01 00 00 00 cd 80 00 00 00 |................|
000000a0 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 00 2e |Hello, world!...|
000000b0 73 68 73 74 72 74 61 62 00 2e 74 65 78 74 00 2e |shstrtab..text..|
000000c0 64 61 74 61 00 00 00 00 00 00 00 00 00 00 00 00 |data............|
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000000f0 0b 00 00 00 01 00 00 00 06 00 00 00 80 80 04 08 |................|
00000100 80 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 |................|
00000110 10 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00 |................|
00000120 03 00 00 00 a0 90 04 08 a0 00 00 00 0e 00 00 00 |................|
00000130 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 |................|
00000140 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 |................|
00000150 ae 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 |................|
00000160 01 00 00 00 00 00 00 00 |........|
The problem - revisited
What is a programming language?
What composes a programming language?
Why are there a lot of them?
What defines a programming language?
Syntax
Semantics
Paradigm[s]
Typing system
Translation scheme / Execution model
Memory management
….
hello.a
Translation scheme - Compilation
compiler
linker
compiler
assembler
hello.c
welcome.c
hello.o
welcome.o
greetings
Translation scheme - Interpretation
interpreter
welcome.rb
bye.rb
hello.rb
Translation scheme - Hybrid
compiler
hello.java hello.class
virtual machine
Translation scheme - Hybrid [enhanced]
compiler
hello.java hello.class
JIT
010101001110
010001000100
010010000101
Memory management
Typing system
Dynamic
function sum(a, b) {
return a + b;
}
sum(1, 9);
sum(0.5, 0.9);
sum(“string”, 11);
Static
function sum(int a, int b) {
return a + b;
}
sum(1, 9);
sum(0.5, 0.9);
sum(“string”, 11);
Typing system
Strong vs Weak
Paradigms
● imperative (do modify state)
● functional (don’t modify state)
● procedural (action-centered design)
● object-oriented (data-centered design)
declarative
metaprogramming reactive
reflective
Languages
● imperative languages (C, Java, Go)
● functional languages (Lisp, Scheme, Haskell, Scala, ML)
● logic languages (Prolog)
● shell languages (bash, zsh, ksh)
● scripting languages (Perl, Python, Ruby)
● data/markup languages (HTML, XML)
● query languages (SQL)
● domain-specific languages
Smalltalk
true, false, nil, self, super, thisContext
Be open to new ideas
:D

More Related Content

Viewers also liked

Inocencio meléndez julio. principios de admnistración. la contabilidad com...
 Inocencio meléndez julio. principios de admnistración. la contabilidad com... Inocencio meléndez julio. principios de admnistración. la contabilidad com...
Inocencio meléndez julio. principios de admnistración. la contabilidad com...INOCENCIO MELÉNDEZ JULIO
 
¿Es el rol del docente determinante en la educación a distancia para la for...
 ¿Es el rol del docente determinante en la educación a distancia para la for... ¿Es el rol del docente determinante en la educación a distancia para la for...
¿Es el rol del docente determinante en la educación a distancia para la for...INOCENCIO MELÉNDEZ JULIO
 
Actividad
ActividadActividad
Actividadsonytns
 
Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a sab-mi...
Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a  sab-mi...Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a  sab-mi...
Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a sab-mi...INOCENCIO MELÉNDEZ JULIO
 
Presentacion t.personalidad1
Presentacion t.personalidad1Presentacion t.personalidad1
Presentacion t.personalidad1MELOZZA
 
La comunicación verbal y no verbal. inocencio meléndez julio.
La comunicación verbal y no verbal. inocencio meléndez julio.La comunicación verbal y no verbal. inocencio meléndez julio.
La comunicación verbal y no verbal. inocencio meléndez julio.INOCENCIO MELÉNDEZ JULIO
 
Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...
Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...
Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...INOCENCIO MELÉNDEZ JULIO
 
¿Es el rol del docente determinante en la educación a distancia para la for...
 ¿Es el rol del docente determinante en la educación a distancia para la for... ¿Es el rol del docente determinante en la educación a distancia para la for...
¿Es el rol del docente determinante en la educación a distancia para la for...INOCENCIO MELÉNDEZ JULIO
 
¿Es el rol del docente determinante en la educación a distancia para la for...
 ¿Es el rol del docente determinante en la educación a distancia para la for... ¿Es el rol del docente determinante en la educación a distancia para la for...
¿Es el rol del docente determinante en la educación a distancia para la for...INOCENCIO MELÉNDEZ JULIO
 
Inocencio meléndez julio. instrumentos de recoleccion de información y trab...
Inocencio meléndez julio. instrumentos de recoleccion de información y trab...Inocencio meléndez julio. instrumentos de recoleccion de información y trab...
Inocencio meléndez julio. instrumentos de recoleccion de información y trab...INOCENCIO MELÉNDEZ JULIO
 
La empresa, las sociedades comerciales y su clasificación. inocencio melen...
 La empresa, las sociedades comerciales  y su clasificación. inocencio melen... La empresa, las sociedades comerciales  y su clasificación. inocencio melen...
La empresa, las sociedades comerciales y su clasificación. inocencio melen...INOCENCIO MELÉNDEZ JULIO
 

Viewers also liked (13)

Inocencio meléndez julio. principios de admnistración. la contabilidad com...
 Inocencio meléndez julio. principios de admnistración. la contabilidad com... Inocencio meléndez julio. principios de admnistración. la contabilidad com...
Inocencio meléndez julio. principios de admnistración. la contabilidad com...
 
¿Es el rol del docente determinante en la educación a distancia para la for...
 ¿Es el rol del docente determinante en la educación a distancia para la for... ¿Es el rol del docente determinante en la educación a distancia para la for...
¿Es el rol del docente determinante en la educación a distancia para la for...
 
Actividad
ActividadActividad
Actividad
 
Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a sab-mi...
Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a  sab-mi...Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a  sab-mi...
Inocencio melendez julio. ensayo sobre la negociación de bavaria s.a sab-mi...
 
Presentacion t.personalidad1
Presentacion t.personalidad1Presentacion t.personalidad1
Presentacion t.personalidad1
 
La comunicación verbal y no verbal. inocencio meléndez julio.
La comunicación verbal y no verbal. inocencio meléndez julio.La comunicación verbal y no verbal. inocencio meléndez julio.
La comunicación verbal y no verbal. inocencio meléndez julio.
 
Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...
Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...
Inocencio meléndez julio. preacuerdo empresarial. el planeamiento en la inve...
 
¿Es el rol del docente determinante en la educación a distancia para la for...
 ¿Es el rol del docente determinante en la educación a distancia para la for... ¿Es el rol del docente determinante en la educación a distancia para la for...
¿Es el rol del docente determinante en la educación a distancia para la for...
 
¿Es el rol del docente determinante en la educación a distancia para la for...
 ¿Es el rol del docente determinante en la educación a distancia para la for... ¿Es el rol del docente determinante en la educación a distancia para la for...
¿Es el rol del docente determinante en la educación a distancia para la for...
 
Inocencio meléndez julio. instrumentos de recoleccion de información y trab...
Inocencio meléndez julio. instrumentos de recoleccion de información y trab...Inocencio meléndez julio. instrumentos de recoleccion de información y trab...
Inocencio meléndez julio. instrumentos de recoleccion de información y trab...
 
La empresa, las sociedades comerciales y su clasificación. inocencio melen...
 La empresa, las sociedades comerciales  y su clasificación. inocencio melen... La empresa, las sociedades comerciales  y su clasificación. inocencio melen...
La empresa, las sociedades comerciales y su clasificación. inocencio melen...
 
Rebeka
RebekaRebeka
Rebeka
 
Temblor palatino por malformación vascular
Temblor palatino por malformación vascularTemblor palatino por malformación vascular
Temblor palatino por malformación vascular
 

Similar to There and Back Again - A Tale of Programming Languages

What I Wish I Knew Before I Started Coding
What I Wish I Knew Before I Started CodingWhat I Wish I Knew Before I Started Coding
What I Wish I Knew Before I Started CodingMattan Griffel
 
The makings of Beenux (Bee for Linux) by Gerardo Richarte
The makings of Beenux (Bee for Linux) by Gerardo RicharteThe makings of Beenux (Bee for Linux) by Gerardo Richarte
The makings of Beenux (Bee for Linux) by Gerardo RicharteFAST
 
最小 Hello World! チャレンジ
最小 Hello World! チャレンジ最小 Hello World! チャレンジ
最小 Hello World! チャレンジTakashi Kawachi
 
Monitoring Challenges - Monitorama 2016 - Monitoringless
Monitoring Challenges - Monitorama 2016 - MonitoringlessMonitoring Challenges - Monitorama 2016 - Monitoringless
Monitoring Challenges - Monitorama 2016 - MonitoringlessAdrian Cockcroft
 
En ach550 01_um_f_a4_lo_screenres
En ach550 01_um_f_a4_lo_screenresEn ach550 01_um_f_a4_lo_screenres
En ach550 01_um_f_a4_lo_screenresToàn Huỳnh
 
Citrix Online GoToMeeting User Guide v4.0
Citrix Online GoToMeeting User Guide v4.0Citrix Online GoToMeeting User Guide v4.0
Citrix Online GoToMeeting User Guide v4.0Connecting Up
 
Tabular Data Stream: The Binding Between Client and SAP ASE
Tabular Data Stream: The Binding Between Client and SAP ASETabular Data Stream: The Binding Between Client and SAP ASE
Tabular Data Stream: The Binding Between Client and SAP ASESAP Technology
 
Balaji,frontline embedded system design using 8051 microcontrollers
Balaji,frontline   embedded system design using 8051 microcontrollersBalaji,frontline   embedded system design using 8051 microcontrollers
Balaji,frontline embedded system design using 8051 microcontrollersWindyAyu4
 
Gigaset S650H Pro Digital Cordless Phone
Gigaset S650H Pro Digital Cordless PhoneGigaset S650H Pro Digital Cordless Phone
Gigaset S650H Pro Digital Cordless PhoneTelephones Online
 
Backbonetutorials
BackbonetutorialsBackbonetutorials
Backbonetutorialsshekhar_who
 
16 AVR Instruction Encoding.pdf
16 AVR Instruction Encoding.pdf16 AVR Instruction Encoding.pdf
16 AVR Instruction Encoding.pdfHuzaifa747109
 
ZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do SoftwareZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do SoftwareUseZ
 
Quick start (2)_part1 italiano
Quick start (2)_part1 italianoQuick start (2)_part1 italiano
Quick start (2)_part1 italianogiulio45
 
Quick start (2)
Quick start (2)Quick start (2)
Quick start (2)giulio45
 
Quick start (2)
Quick start (2)Quick start (2)
Quick start (2)giulio45
 
Mikroc pro avr_manual_v100
Mikroc pro avr_manual_v100Mikroc pro avr_manual_v100
Mikroc pro avr_manual_v100EEMPROM
 

Similar to There and Back Again - A Tale of Programming Languages (20)

What I Wish I Knew Before I Started Coding
What I Wish I Knew Before I Started CodingWhat I Wish I Knew Before I Started Coding
What I Wish I Knew Before I Started Coding
 
The makings of Beenux (Bee for Linux) by Gerardo Richarte
The makings of Beenux (Bee for Linux) by Gerardo RicharteThe makings of Beenux (Bee for Linux) by Gerardo Richarte
The makings of Beenux (Bee for Linux) by Gerardo Richarte
 
最小 Hello World! チャレンジ
最小 Hello World! チャレンジ最小 Hello World! チャレンジ
最小 Hello World! チャレンジ
 
Tgrid tg
Tgrid tgTgrid tg
Tgrid tg
 
Monitoring Challenges - Monitorama 2016 - Monitoringless
Monitoring Challenges - Monitorama 2016 - MonitoringlessMonitoring Challenges - Monitorama 2016 - Monitoringless
Monitoring Challenges - Monitorama 2016 - Monitoringless
 
En ach550 01_um_f_a4_lo_screenres
En ach550 01_um_f_a4_lo_screenresEn ach550 01_um_f_a4_lo_screenres
En ach550 01_um_f_a4_lo_screenres
 
Autocad 2000 manual
Autocad 2000 manualAutocad 2000 manual
Autocad 2000 manual
 
Citrix Online GoToMeeting User Guide v4.0
Citrix Online GoToMeeting User Guide v4.0Citrix Online GoToMeeting User Guide v4.0
Citrix Online GoToMeeting User Guide v4.0
 
Tabular Data Stream: The Binding Between Client and SAP ASE
Tabular Data Stream: The Binding Between Client and SAP ASETabular Data Stream: The Binding Between Client and SAP ASE
Tabular Data Stream: The Binding Between Client and SAP ASE
 
Balaji,frontline embedded system design using 8051 microcontrollers
Balaji,frontline   embedded system design using 8051 microcontrollersBalaji,frontline   embedded system design using 8051 microcontrollers
Balaji,frontline embedded system design using 8051 microcontrollers
 
Gigaset S650H Pro Digital Cordless Phone
Gigaset S650H Pro Digital Cordless PhoneGigaset S650H Pro Digital Cordless Phone
Gigaset S650H Pro Digital Cordless Phone
 
Os lab manual
Os lab manualOs lab manual
Os lab manual
 
Backbonetutorials
BackbonetutorialsBackbonetutorials
Backbonetutorials
 
16 AVR Instruction Encoding.pdf
16 AVR Instruction Encoding.pdf16 AVR Instruction Encoding.pdf
16 AVR Instruction Encoding.pdf
 
ZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do SoftwareZebraNet Bridge Enterprise - Manual do Software
ZebraNet Bridge Enterprise - Manual do Software
 
Quick start (2)_part1 italiano
Quick start (2)_part1 italianoQuick start (2)_part1 italiano
Quick start (2)_part1 italiano
 
Quick start (2)
Quick start (2)Quick start (2)
Quick start (2)
 
Quick start (2)
Quick start (2)Quick start (2)
Quick start (2)
 
Dynamics AX/ X++
Dynamics AX/ X++Dynamics AX/ X++
Dynamics AX/ X++
 
Mikroc pro avr_manual_v100
Mikroc pro avr_manual_v100Mikroc pro avr_manual_v100
Mikroc pro avr_manual_v100
 

More from BADR

Sunspot - The Ruby Way into Solr
Sunspot - The Ruby Way into SolrSunspot - The Ruby Way into Solr
Sunspot - The Ruby Way into SolrBADR
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web DevelopersBADR
 
Take Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentTake Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentBADR
 
Single Responsibility Principle
Single Responsibility PrincipleSingle Responsibility Principle
Single Responsibility PrincipleBADR
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL DatabasesBADR
 
Explicit Semantic Analysis
Explicit Semantic AnalysisExplicit Semantic Analysis
Explicit Semantic AnalysisBADR
 
Getting some Git
Getting some GitGetting some Git
Getting some GitBADR
 
ReactiveX
ReactiveXReactiveX
ReactiveXBADR
 
Algorithms - A Sneak Peek
Algorithms - A Sneak PeekAlgorithms - A Sneak Peek
Algorithms - A Sneak PeekBADR
 
Android from A to Z
Android from A to ZAndroid from A to Z
Android from A to ZBADR
 
Apache Hadoop - Big Data Engineering
Apache Hadoop - Big Data EngineeringApache Hadoop - Big Data Engineering
Apache Hadoop - Big Data EngineeringBADR
 
MySQL Indexing
MySQL IndexingMySQL Indexing
MySQL IndexingBADR
 
Duckville - The Strategy Design Pattern
Duckville - The Strategy Design PatternDuckville - The Strategy Design Pattern
Duckville - The Strategy Design PatternBADR
 
The Perks and Perils of the Singleton Design Pattern
The Perks and Perils of the Singleton Design PatternThe Perks and Perils of the Singleton Design Pattern
The Perks and Perils of the Singleton Design PatternBADR
 

More from BADR (14)

Sunspot - The Ruby Way into Solr
Sunspot - The Ruby Way into SolrSunspot - The Ruby Way into Solr
Sunspot - The Ruby Way into Solr
 
Docker up and Running For Web Developers
Docker up and Running For Web DevelopersDocker up and Running For Web Developers
Docker up and Running For Web Developers
 
Take Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven DevelopmentTake Pride in Your Code - Test-Driven Development
Take Pride in Your Code - Test-Driven Development
 
Single Responsibility Principle
Single Responsibility PrincipleSingle Responsibility Principle
Single Responsibility Principle
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
Explicit Semantic Analysis
Explicit Semantic AnalysisExplicit Semantic Analysis
Explicit Semantic Analysis
 
Getting some Git
Getting some GitGetting some Git
Getting some Git
 
ReactiveX
ReactiveXReactiveX
ReactiveX
 
Algorithms - A Sneak Peek
Algorithms - A Sneak PeekAlgorithms - A Sneak Peek
Algorithms - A Sneak Peek
 
Android from A to Z
Android from A to ZAndroid from A to Z
Android from A to Z
 
Apache Hadoop - Big Data Engineering
Apache Hadoop - Big Data EngineeringApache Hadoop - Big Data Engineering
Apache Hadoop - Big Data Engineering
 
MySQL Indexing
MySQL IndexingMySQL Indexing
MySQL Indexing
 
Duckville - The Strategy Design Pattern
Duckville - The Strategy Design PatternDuckville - The Strategy Design Pattern
Duckville - The Strategy Design Pattern
 
The Perks and Perils of the Singleton Design Pattern
The Perks and Perils of the Singleton Design PatternThe Perks and Perils of the Singleton Design Pattern
The Perks and Perils of the Singleton Design Pattern
 

Recently uploaded

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Recently uploaded (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

There and Back Again - A Tale of Programming Languages

  • 1.
  • 2. There and back again A tale of programming languages
  • 3. The problem What is a programming language? What composes a programming language? Why are there a lot of them?
  • 4. How everything started? 00000000 7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 |.ELF............| 00000010 02 00 03 00 01 00 00 00 80 80 04 08 34 00 00 00 |............4...| 00000020 c8 00 00 00 00 00 00 00 34 00 20 00 02 00 28 00 |........4. ...(.| 00000030 04 00 03 00 01 00 00 00 00 00 00 00 00 80 04 08 |................| 00000040 00 80 04 08 9d 00 00 00 9d 00 00 00 05 00 00 00 |................| 00000050 00 10 00 00 01 00 00 00 a0 00 00 00 a0 90 04 08 |................| 00000060 a0 90 04 08 0e 00 00 00 0e 00 00 00 06 00 00 00 |................| 00000070 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000080 ba 0e 00 00 00 b9 a0 90 04 08 bb 01 00 00 00 b8 |................| 00000090 04 00 00 00 cd 80 b8 01 00 00 00 cd 80 00 00 00 |................| 000000a0 48 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a 00 2e |Hello, world!...| 000000b0 73 68 73 74 72 74 61 62 00 2e 74 65 78 74 00 2e |shstrtab..text..| 000000c0 64 61 74 61 00 00 00 00 00 00 00 00 00 00 00 00 |data............| 000000d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 000000f0 0b 00 00 00 01 00 00 00 06 00 00 00 80 80 04 08 |................| 00000100 80 00 00 00 1d 00 00 00 00 00 00 00 00 00 00 00 |................| 00000110 10 00 00 00 00 00 00 00 11 00 00 00 01 00 00 00 |................| 00000120 03 00 00 00 a0 90 04 08 a0 00 00 00 0e 00 00 00 |................| 00000130 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 |................| 00000140 01 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 |................| 00000150 ae 00 00 00 17 00 00 00 00 00 00 00 00 00 00 00 |................| 00000160 01 00 00 00 00 00 00 00 |........|
  • 5. The problem - revisited What is a programming language? What composes a programming language? Why are there a lot of them?
  • 6. What defines a programming language? Syntax Semantics Paradigm[s] Typing system Translation scheme / Execution model Memory management ….
  • 7. hello.a Translation scheme - Compilation compiler linker compiler assembler hello.c welcome.c hello.o welcome.o greetings
  • 8. Translation scheme - Interpretation interpreter welcome.rb bye.rb hello.rb
  • 9. Translation scheme - Hybrid compiler hello.java hello.class virtual machine
  • 10. Translation scheme - Hybrid [enhanced] compiler hello.java hello.class JIT 010101001110 010001000100 010010000101
  • 12. Typing system Dynamic function sum(a, b) { return a + b; } sum(1, 9); sum(0.5, 0.9); sum(“string”, 11); Static function sum(int a, int b) { return a + b; } sum(1, 9); sum(0.5, 0.9); sum(“string”, 11);
  • 14. Paradigms ● imperative (do modify state) ● functional (don’t modify state) ● procedural (action-centered design) ● object-oriented (data-centered design) declarative metaprogramming reactive reflective
  • 15. Languages ● imperative languages (C, Java, Go) ● functional languages (Lisp, Scheme, Haskell, Scala, ML) ● logic languages (Prolog) ● shell languages (bash, zsh, ksh) ● scripting languages (Perl, Python, Ruby) ● data/markup languages (HTML, XML) ● query languages (SQL) ● domain-specific languages
  • 16. Smalltalk true, false, nil, self, super, thisContext
  • 17. Be open to new ideas :D