SlideShare a Scribd company logo
1 of 56
Life and Work of Dr.Robin Milner


By:
Dr. Navin Kabra, Co-Founder and
CTO, ReliScore.com
Robin Milner
Turing Award 1991 For

 LCF – Automated Theorem Proving

 ML – Programming Language
    
        With Polymorphic Type Inference
    
        Type-Safe Exception Handling

 CCS – A General Theory of Concurrency
“
  A key ingredient in all of his work has been his
ability to combine deep insight into mathematical
 foundations of the subject with an equally deep
 understanding of practical and aesthetic issues,
thus allowing the feedback of theory into practice
                in an exciting way.


                       ”
Outline

    Importance of Types

    Polymorphic Types

    Type Inferencing

    ML

    Life and Work of Robin Milner
Disclaimers

    Not an Expert

    Brief Overviews Only

    High-level Handwaving
PYTHON:

def total(collection):
    tot = 0
    for item in collection:
        tot += item
    return tot


JAVA:

import java.util.*;

class Main {
      public static int total(List collection) {
          int tot = 0;
          Iterator it = collection.iterator();
          while (it.hasNext()) {
                       Integer item = (Integer)it.next();
              tot += item;
          }
          return tot;
      }
}
Java is a typed language

Python has no types (???)
Java is a statically typed language

   Python is dynamically typed
Java: types checked at compile-time

 Python: types checked at runtime
PYTHON:

def total(collection):
    tot = 0
    for item in collection:
        tot += item
    return tot


JAVA:

import java.util.*;

class Main {
      public static int total(List collection) {
          int tot = 0;
          Iterator it = collection.iterator();
          while (it.hasNext()) {
                       Integer item = (Integer)it.next();
              tot += item;
          }
          return tot;
      }
}
PYTHON:

def total(collection):
    tot = 0
    for item in collection:
        tot += item
    return tot


JAVA:

import java.util.*;

class Main {
      public static int total(List<Integer> collection) {
          int tot = 0;
          Iterator<Integer> it = collection.iterator();
          while (it.hasNext()) {
              tot += it.next();
          }
          return tot;
      }
}
Java: safer

Python: easier
The problem of generic computation
PYTHON:

def total(collection):               Works for List of any
    tot = 0                          type that supports '+'
    for item in collection:
        tot += item
    return tot


JAVA:

import java.util.*;

class Main {
      public static int total(List<Integer> collection) {
          int tot = 0;
          Iterator<Integer> it = collection.iterator();
          while (it.hasNext()) {
              tot += it.next();
          }
          return tot;                 Works for List of
      }
                                      Integer only
}
GENERIC Types in JAVA:

import java.util.*;

class Main<T> {
      public static T total(List<T> collection) {
          T tot = 0;
          Iterator<T> it = collection.iterator();
          while (it.hasNext()) {
              tot += it.next();
          }
          return tot;
      }
}
GENERIC Type Examples:

class MyList<T> {
    T[] array_of_items;

    public MyList<T>() {
        this.array_of_items = new T[10];
    }

    public T getElem(int n) {
        return this.array_of_items[n];
    }

    public void bubbleSort() {
       for(int i=0; i<array_of_items.length; i++) {
           for(int j=0; j<i; j++) {
               if (compare(array_of_items[i],
                           array_of_items[j]) > 0) {
               T tmp = array_of_items[i];
               array_of_items[i] = array_of_items[j];
               array_of_items[j] = tmp;
           }
        }
    }
}
Type Inferencing
Java (static typing): safer

Python (dynamic typing): easier
Inferring Types

    All types need not be user-
    specified

    Compiler can infer types
int f(String s) {
   return s.string_length;
}

int g(String x, int y) {
   return f(x) + y;
}
f(String s) {
   return s.string_length;
}

g(x, y) {
  return f(x) + y;
}


-------
Type inferencing

s.string_length is int hence return-type of f is int
f(x) is called, so x is String
f(x) returns int, so f(x) + y is int
Hence return-type of g is int
f(s) {
   return s.string_length;
}

g(x, y) {
  return f(x) + y;
}


-------
Type inferencing

s is any type that allows s.string_length
Only String has s.string_length, so s is String
s.string_length is int
So f is function that takes String and returns int
f(x) returns int, so f(x) + y is int
Hence return-type of g is int
f(s) {
   return s.length;
}

g(x, y) {
  return f(x) + y;
}


-------
Type inferencing

s is any type that allows s.length
Let's call that type S
s.string_length depends upon S
Let type of s.string_length be L
So f is function that takes S and returns L
f(x) + y, so L must support '+'
If only integers support '+' then L is int
Then f is function that takes S and returns int
g is a function that takes S, int and returns int
f(s) {
   return s.length;
}

g(x, y) {
  return f(x) + y;
}


-------
Type inferencing ... continued

More inferencing possible:
 if String is the only class that has s.length
 returning int, then S is String
Type Inferencing – Conceptual View

    Program consists of literals,
    variables and expressions

    Literals have fixed types

    Variables' types have to be
    inferred
Type Inferencing – Basic Idea

    Every expression imposes
    constraints on possible types of
    variables

    Find an assignment of types that
    satisfies all constraints

    “Unification” problem
Most General Type

    Case 1: x is int, y is List<int>, f is
    function taking int, List<int> and
    returning int

    Case 2: x is T, y is List<T>, f is
    function taking T, List<T> and
    returning T
ML
ML

    Milner's ML first programming
    language with polymorphic type
    inference

    Direct Influence on F#, Scala,
    O'Caml, Java

    Indirect influence on most modern
ML Features

    Impure functional programming
    language
    
        Allows side-effects


    Features
    
        Call-by-value (greedy)
    
        First class functions
    
        Garbage collection
ML
Solid Mathematical Foundation, but
        Practical Language
Why ML?
Life & Work of
 Robin Milner
Robin Milner – Early Life

    Born in UK – military family
    
        Second Lieutenant in Royal Engineers


    1950s: King's College Cambridge
    
        B.Sc. Math & Philosophy
    
        First exposure to programming
        −   (Assembly!)
First Programming
            Experience

                       “
  Programming was not a very beautiful thing. I
resolved I would never go near a computer in my
                      life.

     Millner found the activity of "writing one
instruction after the other" to be "inelegant" and
                    "arbitrary".
Early Life - Contd

    No PhD

    1 year as a school teacher

    2 years of National Service – Suez

    Job for Computer Manufacturer
    Ferranti
    
        QA, Program Library Maintenance, Compiler
Entry to Academia

    1963 City University London:
    
        “moved to academia with a passionate belief that a
        deeper understanding of programming could form
        the basis for a more elegant practice.”


    Exposure to relational algebra
    
        “but did not get very far with that”
Program Semantics

    1968: Exposure to Christopher
    Strachey & Dana Scott
    
        “Computable Functionals”
    
        Abstract mathematical model for programs
        −   Meaning of programs
        −   “Denotational Semantics”


    Exposure to Provably Correct
Automated Theorem Proving

    Program Verification
    
        Manually intensive, boring, error-prone job


    Milner's idea: Use programs for
    automated proofs
    
        Result: Toy programs only
    
        Difficult to do anything interesting
Assisted Theorem Proving

    1971-1973 Stanford
    
        Exposure to John McCarthy's AI program
    
        Milner's idea: assist human intelligence, don't
        replace it
    
        Use machines to help humans do Strachey-Scott
        style proving
        −   On practical examples
Stanford LCF

    Interactive user-driven proof
    system

    Computer given goals, sub-goals

    Computer constructs whole proof
    under user direction

    Reduces tedium, ensures
What's a Proof?

    Start with axioms
    
        Known facts


    And inference rules
    
        Method of generating new facts from old ones


    Repeatedly apply rules to prove
    theorems
Proof Assistant

    Understands axioms, inference
    rules

    Understands standard patterns of
    proof
    
        e.g. substitution, induction, simplification
    
        “Tactics”


    Understands how to combine
Applications of Theorem Proving

    Intel/Motorola use for chip
    verification
    
        FDIV bug
Generalizing Theorem Proving

    How to add new tactics and new
    tacticals to a proof assistant

    How to prove that they don't have
    bugs
Meta Language

    Language to define:
    
        Axioms
    
        Inference Rules
    
        Patterns of Proof (Tactics)
    
        Composition of Tactics (Tacticals)


    How
    
        Data types, whose pre-defined values are axioms
    
ML Requirements - Broad

    Solve practical problems

    Use absolute minimum concepts

    Rigorously defined and analyzed
ML Requirements -
              Detailed

    Algebra based (not hardware)

    Very simple foundation

    Orthogonal ideas
    
        Study and analyze independently
    
        Combine in powerful ways


    Easy to define and prove
ML Design

    Needs of theorem proving
    influenced design

    Narrow focus = simple/elegant
    language

    But (surprisingly?) wide
    applicability
Problems with LCF

    Works only for simple sequential
    programs
    
        What about concurrent programs?
    
        What about user inputs
    
        What about non-deterministic behavior?
CCS

    1980s

    Theoretical foundation for
    provable correctness of concurrent
    programs

    Modeling of shared data structures
    (memory locations)
After Turing Award

    Pi-calculus

    Theory of comunicating and
    mobile programs

    Allow network topology to change
    during program execution
Impact of pi-calculus

    spi-calculus used in proofs of
    cryptographic protocols

    Stochastic pi-calculus used in
    molecular biology

    Also used in business processes
Challenges

    Need mathematical foundations
    for:
    
        Data provenance
    
        Privacy
    
        Authorization
    
        Trust (amongst users)
    
        Self-awareness
    
        Self-management
Milner died on 20 March 2010
               th

   but his work lives on
“
  A key ingredient in all of his work has been his
ability to combine deep insight into mathematical
 foundations of the subject with an equally deep
 understanding of practical and aesthetic issues,
thus allowing the feedback of theory into practice
                in an exciting way.


                       ”

More Related Content

What's hot (20)

Python advance
Python advancePython advance
Python advance
 
Python basics
Python basicsPython basics
Python basics
 
Solid Deconstruction
Solid DeconstructionSolid Deconstruction
Solid Deconstruction
 
Data types in python
Data types in pythonData types in python
Data types in python
 
Python revision tour i
Python revision tour iPython revision tour i
Python revision tour i
 
Java Generics
Java GenericsJava Generics
Java Generics
 
Python 3 Programming Language
Python 3 Programming LanguagePython 3 Programming Language
Python 3 Programming Language
 
Introduction To Programming with Python
Introduction To Programming with PythonIntroduction To Programming with Python
Introduction To Programming with Python
 
Chapter 10 data handling
Chapter 10 data handlingChapter 10 data handling
Chapter 10 data handling
 
Fundamentals of Python Programming
Fundamentals of Python ProgrammingFundamentals of Python Programming
Fundamentals of Python Programming
 
Python Basics
Python Basics Python Basics
Python Basics
 
Lazy java
Lazy javaLazy java
Lazy java
 
What is Python?
What is Python?What is Python?
What is Python?
 
Python Session - 4
Python Session - 4Python Session - 4
Python Session - 4
 
Introduction to Python - Part Three
Introduction to Python - Part ThreeIntroduction to Python - Part Three
Introduction to Python - Part Three
 
Python
PythonPython
Python
 
C++ Standard Template Library
C++ Standard Template LibraryC++ Standard Template Library
C++ Standard Template Library
 
Effective Java - Enum and Annotations
Effective Java - Enum and AnnotationsEffective Java - Enum and Annotations
Effective Java - Enum and Annotations
 
Python Tutorial Part 1
Python Tutorial Part 1Python Tutorial Part 1
Python Tutorial Part 1
 
Introduction to Python Part-1
Introduction to Python Part-1Introduction to Python Part-1
Introduction to Python Part-1
 

Viewers also liked

What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...Persistent Systems Ltd.
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentPersistent Systems Ltd.
 
Alan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsAlan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsPersistent Systems Ltd.
 
Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…Persistent Systems Ltd.
 
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentEarly History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentPersistent Systems Ltd.
 
Life and Work of Jim Gray | Turing100@Persistent
Life and Work of Jim Gray | Turing100@PersistentLife and Work of Jim Gray | Turing100@Persistent
Life and Work of Jim Gray | Turing100@PersistentPersistent Systems Ltd.
 

Viewers also liked (7)

What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...What is wrong with the Internet? [On the foundations of internet security, fu...
What is wrong with the Internet? [On the foundations of internet security, fu...
 
System Anecdotes | Turing100@Persistent
System Anecdotes | Turing100@PersistentSystem Anecdotes | Turing100@Persistent
System Anecdotes | Turing100@Persistent
 
Life & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@PersistentLife & Work of Butler Lampson | Turing100@Persistent
Life & Work of Butler Lampson | Turing100@Persistent
 
Alan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent SystemsAlan Turing Centenary @ Persistent Systems
Alan Turing Centenary @ Persistent Systems
 
Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…Systems Design Experiences or Just Some War Stories…
Systems Design Experiences or Just Some War Stories…
 
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@PersistentEarly History of Fortran: The Making of a Wonder | Turing100@Persistent
Early History of Fortran: The Making of a Wonder | Turing100@Persistent
 
Life and Work of Jim Gray | Turing100@Persistent
Life and Work of Jim Gray | Turing100@PersistentLife and Work of Jim Gray | Turing100@Persistent
Life and Work of Jim Gray | Turing100@Persistent
 

Similar to Life & Work of Robin Milner | Turing100@Persistent

Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Codemotion
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python ProgrammingVijaySharma802
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already KnowKevlin Henney
 
Introduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIMLIntroduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIMLVijaySharma802
 
TypeScript and Deep Learning
TypeScript and Deep LearningTypeScript and Deep Learning
TypeScript and Deep LearningOswald Campesato
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningOswald Campesato
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningOswald Campesato
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answersRojaPriya
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answerskavinilavuG
 
Functions2.pdf
Functions2.pdfFunctions2.pdf
Functions2.pdfDaddy84
 
Functional programming with FSharp
Functional programming with FSharpFunctional programming with FSharp
Functional programming with FSharpDaniele Pozzobon
 
Twins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional ProgrammingTwins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional ProgrammingRichardWarburton
 
PRESENTATION ON PYTHON.pptx
PRESENTATION ON PYTHON.pptxPRESENTATION ON PYTHON.pptx
PRESENTATION ON PYTHON.pptxabhishek364864
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxMarco Parenzan
 
Functions_21_22.pdf
Functions_21_22.pdfFunctions_21_22.pdf
Functions_21_22.pdfpaijitk
 

Similar to Life & Work of Robin Milner | Turing100@Persistent (20)

Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
Functional Programming You Already Know - Kevlin Henney - Codemotion Rome 2015
 
Introduction to Python Programming
Introduction to Python ProgrammingIntroduction to Python Programming
Introduction to Python Programming
 
Functional Programming You Already Know
Functional Programming You Already KnowFunctional Programming You Already Know
Functional Programming You Already Know
 
Introduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIMLIntroduction to Python Programming | InsideAIML
Introduction to Python Programming | InsideAIML
 
TypeScript and Deep Learning
TypeScript and Deep LearningTypeScript and Deep Learning
TypeScript and Deep Learning
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
D3, TypeScript, and Deep Learning
D3, TypeScript, and Deep LearningD3, TypeScript, and Deep Learning
D3, TypeScript, and Deep Learning
 
Functions.pdf
Functions.pdfFunctions.pdf
Functions.pdf
 
Functionscs12 ppt.pdf
Functionscs12 ppt.pdfFunctionscs12 ppt.pdf
Functionscs12 ppt.pdf
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answers
 
Python interview questions and answers
Python interview questions and answersPython interview questions and answers
Python interview questions and answers
 
Functions2.pdf
Functions2.pdfFunctions2.pdf
Functions2.pdf
 
Functional programming with FSharp
Functional programming with FSharpFunctional programming with FSharp
Functional programming with FSharp
 
Python for dummies
Python for dummiesPython for dummies
Python for dummies
 
Twins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional ProgrammingTwins: Object Oriented Programming and Functional Programming
Twins: Object Oriented Programming and Functional Programming
 
PRESENTATION ON PYTHON.pptx
PRESENTATION ON PYTHON.pptxPRESENTATION ON PYTHON.pptx
PRESENTATION ON PYTHON.pptx
 
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptxStatic abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
Static abstract members nelle interfacce di C# 11 e dintorni di .NET 7.pptx
 
Functions_21_22.pdf
Functions_21_22.pdfFunctions_21_22.pdf
Functions_21_22.pdf
 
Python for Dummies
Python for DummiesPython for Dummies
Python for Dummies
 
C# programming
C# programming C# programming
C# programming
 

More from Persistent Systems Ltd.

Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Persistent Systems Ltd.
 
Embedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkEmbedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkPersistent Systems Ltd.
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkPersistent Systems Ltd.
 
Life and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentLife and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentPersistent Systems Ltd.
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Persistent Systems Ltd.
 
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Persistent Systems Ltd.
 
Life and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentLife and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentPersistent Systems Ltd.
 
Life and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentLife and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentPersistent Systems Ltd.
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentPersistent Systems Ltd.
 
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentLife & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentPersistent Systems Ltd.
 
Net Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsNet Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsPersistent Systems Ltd.
 
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsAlan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsPersistent Systems Ltd.
 
Life and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentLife and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentPersistent Systems Ltd.
 

More from Persistent Systems Ltd. (13)

Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
Skilling for SMAC by Anand Deshpande, Founder, Chairman and Managing Director...
 
Embedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing TechtalkEmbedded Linux Evolution | Turing Techtalk
Embedded Linux Evolution | Turing Techtalk
 
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing TechtalkLife and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
Life and Work of Ken Thompson and Dennis Ritchie | Turing Techtalk
 
Life and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@PersistentLife and Work of Ivan Sutherland | Turing100@Persistent
Life and Work of Ivan Sutherland | Turing100@Persistent
 
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
Evolution of the modern graphics architectures with a focus on GPUs | Turing1...
 
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
Life and Work of Ronald L. Rivest, Adi Shamir & Leonard M. Adleman | Turing10...
 
Life and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@PersistentLife and Work of Judea Perl | Turing100@Persistent
Life and Work of Judea Perl | Turing100@Persistent
 
Life and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@PersistentLife and Work of Dr. John Backus | Turing100@Persistent
Life and Work of Dr. John Backus | Turing100@Persistent
 
Software Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@PersistentSoftware Faults, Failures and Their Mitigations | Turing100@Persistent
Software Faults, Failures and Their Mitigations | Turing100@Persistent
 
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@PersistentLife & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
Life & Work of Dr. Vinton Cerf and Dr. Robert Kahn | Turing100@Persistent
 
Net Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent SystemsNet Neutrality | Turing100@Persistent Systems
Net Neutrality | Turing100@Persistent Systems
 
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent SystemsAlan Turing Scientist Unlimited | Turing100@Persistent Systems
Alan Turing Scientist Unlimited | Turing100@Persistent Systems
 
Life and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@PersistentLife and work of E.F. (Ted) Codd | Turing100@Persistent
Life and work of E.F. (Ted) Codd | Turing100@Persistent
 

Recently uploaded

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 

Recently uploaded (20)

Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 

Life & Work of Robin Milner | Turing100@Persistent

  • 1. Life and Work of Dr.Robin Milner By: Dr. Navin Kabra, Co-Founder and CTO, ReliScore.com
  • 2. Robin Milner Turing Award 1991 For  LCF – Automated Theorem Proving  ML – Programming Language  With Polymorphic Type Inference  Type-Safe Exception Handling  CCS – A General Theory of Concurrency
  • 3. “ A key ingredient in all of his work has been his ability to combine deep insight into mathematical foundations of the subject with an equally deep understanding of practical and aesthetic issues, thus allowing the feedback of theory into practice in an exciting way. ”
  • 4. Outline  Importance of Types  Polymorphic Types  Type Inferencing  ML  Life and Work of Robin Milner
  • 5. Disclaimers  Not an Expert  Brief Overviews Only  High-level Handwaving
  • 6. PYTHON: def total(collection): tot = 0 for item in collection: tot += item return tot JAVA: import java.util.*; class Main { public static int total(List collection) { int tot = 0; Iterator it = collection.iterator(); while (it.hasNext()) { Integer item = (Integer)it.next(); tot += item; } return tot; } }
  • 7. Java is a typed language Python has no types (???)
  • 8. Java is a statically typed language Python is dynamically typed
  • 9. Java: types checked at compile-time Python: types checked at runtime
  • 10. PYTHON: def total(collection): tot = 0 for item in collection: tot += item return tot JAVA: import java.util.*; class Main { public static int total(List collection) { int tot = 0; Iterator it = collection.iterator(); while (it.hasNext()) { Integer item = (Integer)it.next(); tot += item; } return tot; } }
  • 11. PYTHON: def total(collection): tot = 0 for item in collection: tot += item return tot JAVA: import java.util.*; class Main { public static int total(List<Integer> collection) { int tot = 0; Iterator<Integer> it = collection.iterator(); while (it.hasNext()) { tot += it.next(); } return tot; } }
  • 13. The problem of generic computation
  • 14. PYTHON: def total(collection): Works for List of any tot = 0 type that supports '+' for item in collection: tot += item return tot JAVA: import java.util.*; class Main { public static int total(List<Integer> collection) { int tot = 0; Iterator<Integer> it = collection.iterator(); while (it.hasNext()) { tot += it.next(); } return tot; Works for List of } Integer only }
  • 15. GENERIC Types in JAVA: import java.util.*; class Main<T> { public static T total(List<T> collection) { T tot = 0; Iterator<T> it = collection.iterator(); while (it.hasNext()) { tot += it.next(); } return tot; } }
  • 16. GENERIC Type Examples: class MyList<T> { T[] array_of_items; public MyList<T>() { this.array_of_items = new T[10]; } public T getElem(int n) { return this.array_of_items[n]; } public void bubbleSort() { for(int i=0; i<array_of_items.length; i++) { for(int j=0; j<i; j++) { if (compare(array_of_items[i], array_of_items[j]) > 0) { T tmp = array_of_items[i]; array_of_items[i] = array_of_items[j]; array_of_items[j] = tmp; } } } }
  • 18. Java (static typing): safer Python (dynamic typing): easier
  • 19. Inferring Types  All types need not be user- specified  Compiler can infer types
  • 20. int f(String s) { return s.string_length; } int g(String x, int y) { return f(x) + y; }
  • 21. f(String s) { return s.string_length; } g(x, y) { return f(x) + y; } ------- Type inferencing s.string_length is int hence return-type of f is int f(x) is called, so x is String f(x) returns int, so f(x) + y is int Hence return-type of g is int
  • 22. f(s) { return s.string_length; } g(x, y) { return f(x) + y; } ------- Type inferencing s is any type that allows s.string_length Only String has s.string_length, so s is String s.string_length is int So f is function that takes String and returns int f(x) returns int, so f(x) + y is int Hence return-type of g is int
  • 23. f(s) { return s.length; } g(x, y) { return f(x) + y; } ------- Type inferencing s is any type that allows s.length Let's call that type S s.string_length depends upon S Let type of s.string_length be L So f is function that takes S and returns L f(x) + y, so L must support '+' If only integers support '+' then L is int Then f is function that takes S and returns int g is a function that takes S, int and returns int
  • 24. f(s) { return s.length; } g(x, y) { return f(x) + y; } ------- Type inferencing ... continued More inferencing possible: if String is the only class that has s.length returning int, then S is String
  • 25. Type Inferencing – Conceptual View  Program consists of literals, variables and expressions  Literals have fixed types  Variables' types have to be inferred
  • 26. Type Inferencing – Basic Idea  Every expression imposes constraints on possible types of variables  Find an assignment of types that satisfies all constraints  “Unification” problem
  • 27. Most General Type  Case 1: x is int, y is List<int>, f is function taking int, List<int> and returning int  Case 2: x is T, y is List<T>, f is function taking T, List<T> and returning T
  • 28. ML
  • 29. ML  Milner's ML first programming language with polymorphic type inference  Direct Influence on F#, Scala, O'Caml, Java  Indirect influence on most modern
  • 30. ML Features  Impure functional programming language  Allows side-effects  Features  Call-by-value (greedy)  First class functions  Garbage collection
  • 31. ML Solid Mathematical Foundation, but Practical Language
  • 33. Life & Work of Robin Milner
  • 34. Robin Milner – Early Life  Born in UK – military family  Second Lieutenant in Royal Engineers  1950s: King's College Cambridge  B.Sc. Math & Philosophy  First exposure to programming − (Assembly!)
  • 35. First Programming Experience “ Programming was not a very beautiful thing. I resolved I would never go near a computer in my life. Millner found the activity of "writing one instruction after the other" to be "inelegant" and "arbitrary".
  • 36. Early Life - Contd  No PhD  1 year as a school teacher  2 years of National Service – Suez  Job for Computer Manufacturer Ferranti  QA, Program Library Maintenance, Compiler
  • 37. Entry to Academia  1963 City University London:  “moved to academia with a passionate belief that a deeper understanding of programming could form the basis for a more elegant practice.”  Exposure to relational algebra  “but did not get very far with that”
  • 38. Program Semantics  1968: Exposure to Christopher Strachey & Dana Scott  “Computable Functionals”  Abstract mathematical model for programs − Meaning of programs − “Denotational Semantics”  Exposure to Provably Correct
  • 39. Automated Theorem Proving  Program Verification  Manually intensive, boring, error-prone job  Milner's idea: Use programs for automated proofs  Result: Toy programs only  Difficult to do anything interesting
  • 40. Assisted Theorem Proving  1971-1973 Stanford  Exposure to John McCarthy's AI program  Milner's idea: assist human intelligence, don't replace it  Use machines to help humans do Strachey-Scott style proving − On practical examples
  • 41. Stanford LCF  Interactive user-driven proof system  Computer given goals, sub-goals  Computer constructs whole proof under user direction  Reduces tedium, ensures
  • 42. What's a Proof?  Start with axioms  Known facts  And inference rules  Method of generating new facts from old ones  Repeatedly apply rules to prove theorems
  • 43. Proof Assistant  Understands axioms, inference rules  Understands standard patterns of proof  e.g. substitution, induction, simplification  “Tactics”  Understands how to combine
  • 44. Applications of Theorem Proving  Intel/Motorola use for chip verification  FDIV bug
  • 45. Generalizing Theorem Proving  How to add new tactics and new tacticals to a proof assistant  How to prove that they don't have bugs
  • 46. Meta Language  Language to define:  Axioms  Inference Rules  Patterns of Proof (Tactics)  Composition of Tactics (Tacticals)  How  Data types, whose pre-defined values are axioms 
  • 47. ML Requirements - Broad  Solve practical problems  Use absolute minimum concepts  Rigorously defined and analyzed
  • 48. ML Requirements - Detailed  Algebra based (not hardware)  Very simple foundation  Orthogonal ideas  Study and analyze independently  Combine in powerful ways  Easy to define and prove
  • 49. ML Design  Needs of theorem proving influenced design  Narrow focus = simple/elegant language  But (surprisingly?) wide applicability
  • 50. Problems with LCF  Works only for simple sequential programs  What about concurrent programs?  What about user inputs  What about non-deterministic behavior?
  • 51. CCS  1980s  Theoretical foundation for provable correctness of concurrent programs  Modeling of shared data structures (memory locations)
  • 52. After Turing Award  Pi-calculus  Theory of comunicating and mobile programs  Allow network topology to change during program execution
  • 53. Impact of pi-calculus  spi-calculus used in proofs of cryptographic protocols  Stochastic pi-calculus used in molecular biology  Also used in business processes
  • 54. Challenges  Need mathematical foundations for:  Data provenance  Privacy  Authorization  Trust (amongst users)  Self-awareness  Self-management
  • 55. Milner died on 20 March 2010 th but his work lives on
  • 56. “ A key ingredient in all of his work has been his ability to combine deep insight into mathematical foundations of the subject with an equally deep understanding of practical and aesthetic issues, thus allowing the feedback of theory into practice in an exciting way. ”