SlideShare una empresa de Scribd logo
1 de 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.


                       ”

Más contenido relacionado

La actualidad más candente

La actualidad más candente (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
 

Destacado

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.
 

Destacado (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 a 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 a 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
 

Más de 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.
 

Más de 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
 

Último

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UbiTrack UK
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostMatt Ray
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 

Último (20)

UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCostKubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 

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. ”