The document discusses the speaker's career in programming language research over several decades. It notes various milestones and collaborations in their work on type systems for untyped languages like Scheme from 1987 onwards. This included early work with Corky Cartwright on types for Scheme in the 1980s, co-creating Spidey Scheme with Cormac Flanagan in the 1990s, and their work on Typed Racket with Sam Tobin-Hochstadt from 2005-2016. The speaker argues that their goal was to build type systems that did not require writing down type definitions or adding insertions and projections, and could work for real programs by using extensible records.
Hello Friends,
In this presentation has explained the concept of Mathematical Reasoning. In that topic we will cover statement,negation of statement, conjunction and disjunction and its truth values.
and after taking some example we will be finished the mathematical reasoning part 1 of class 11.
We see
conjunction and disjunction
conjunction and disjunction in math
conjunction and disjunction symbols
conjunction and disjunction truth tables
Negation of conjunction and disjunction
difference between conjunction and disjunction
distinguish between conjunction and disjunction
Hello Friends,
In this presentation has explained the concept of Mathematical Reasoning. In that topic we will cover statement,negation of statement, conjunction and disjunction and its truth values.
and after taking some example we will be finished the mathematical reasoning part 1 of class 11.
We see
conjunction and disjunction
conjunction and disjunction in math
conjunction and disjunction symbols
conjunction and disjunction truth tables
Negation of conjunction and disjunction
difference between conjunction and disjunction
distinguish between conjunction and disjunction
This presentation will introduce you to programming languages that support different programming paradigms and to give you the knowledge of basic concepts and techniques that will allow them to differentiate between various programming paradigms.
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...David Rosenblum
talk presented in the Visions & Challenges Track of the ACM SIGSOFT 22nd International Symposium on the Foundations of Software Engineering (FSE 2014), Hong Kong, 20 November 2014; the paper won 2nd Prize in the track
invited talk presented for the Distinguished Speaker Series of the Institute for Software Research (ISR) at the University of California, Irvine, 5 April 2013
Jogging While Driving, and Other Software Engineering Research Problems (invi...David Rosenblum
invited talk presented for the Distinguished Lecturer Series of the Department of Computer Science at the University of Illinois at Chicago, 10 April 2014
An introduction to different ways of generating text, from language models to Tracery.
This talk was part of a workshop on tool-assisted writing at Nordic Game Jam 2022 in Copenhagen.
The presentation starts with the history of text generation. Different methods and schools of thought are explained, mostly along the schism between symbolic AI and neural networks.
The ethical challenges of deploying language models are touched upon, especially in the context of live-operated large language models.
The talk finishes off with a practical part that re-implements a historical generative text joke from 1952, love letters written by the Manchester University Computer 1.
Intuitive Intro to Gödel's Incompleteness TheoremIlya Kuzovkin
Intuitive introduction into meaning of Gödel's incompleteness theorem. Slides are prepared for "Philosophy of Artificial Intelligence" class at University of Tartu
A presentation about how the most effective advertising blurs the line between art and advertising. Presented by Kieran Antill (Exec. Creative Director JWT Melbourne) and Peter Drew Artist (Real Australians say Welcome)
This presentation will introduce you to programming languages that support different programming paradigms and to give you the knowledge of basic concepts and techniques that will allow them to differentiate between various programming paradigms.
Known Unknowns: Testing in the Presence of Uncertainty (talk at ACM SIGSOFT F...David Rosenblum
talk presented in the Visions & Challenges Track of the ACM SIGSOFT 22nd International Symposium on the Foundations of Software Engineering (FSE 2014), Hong Kong, 20 November 2014; the paper won 2nd Prize in the track
invited talk presented for the Distinguished Speaker Series of the Institute for Software Research (ISR) at the University of California, Irvine, 5 April 2013
Jogging While Driving, and Other Software Engineering Research Problems (invi...David Rosenblum
invited talk presented for the Distinguished Lecturer Series of the Department of Computer Science at the University of Illinois at Chicago, 10 April 2014
An introduction to different ways of generating text, from language models to Tracery.
This talk was part of a workshop on tool-assisted writing at Nordic Game Jam 2022 in Copenhagen.
The presentation starts with the history of text generation. Different methods and schools of thought are explained, mostly along the schism between symbolic AI and neural networks.
The ethical challenges of deploying language models are touched upon, especially in the context of live-operated large language models.
The talk finishes off with a practical part that re-implements a historical generative text joke from 1952, love letters written by the Manchester University Computer 1.
Intuitive Intro to Gödel's Incompleteness TheoremIlya Kuzovkin
Intuitive introduction into meaning of Gödel's incompleteness theorem. Slides are prepared for "Philosophy of Artificial Intelligence" class at University of Tartu
A presentation about how the most effective advertising blurs the line between art and advertising. Presented by Kieran Antill (Exec. Creative Director JWT Melbourne) and Peter Drew Artist (Real Australians say Welcome)
My TEFL resources. See my resources webpage at http://www.tinyurl.com/tomstefl
Download to enjoy the full audio/animation.
This selection of my favourite English lesson resources is adapted specifically for other Hong Kong primary children. All have an informal, fun-based approach and are original designs courtesy of yours truly.
Some Powerpoints cover several lessons and include accompanying printable worksheets and games - most can be adapted for older or younger pupils.
Please contact regarding any errors or copyright claims.
2019-02 The Recommendation Engine @ SunshinePHPterry chay
One of the surest ways to start down that path of making your data science and machine learning work for you is to find low-hanging fruit. Recommender systems have proven to be one of the most useful applications of data science to the consumer-facing web since the earliest days of the internet. This talk covers why and how one was built to recommend colleges to prospective high school students, the application of popularity tables and collaborative filters, as well as other approaches and the reasons for doing them sparkled with some war stories about their success and failures. Hopefully after this you can find how your data can work for your users to transparently improve their interaction with your websites instead of sitting in the back office somewhere helping some executive add graphs to their TPS reports.
Modern metadata catalogs use ontologies and thesauri to create hierarchical and polyhierarchical indexes. But catalogs still seem to miss the needs of both consumers and producers of geospatail data alike. A concise introduction to the syntax and semantics of geospatial metadata shows how to get there and that it misses pragmatics (the third semiotic discipline). One path to solve this problem is to automize metadata generation by better linking IT and to allow more interaction of actors.
Nutraceutical market, scope and growth: Herbal drug technologyLokesh Patil
As consumer awareness of health and wellness rises, the nutraceutical market—which includes goods like functional meals, drinks, and dietary supplements that provide health advantages beyond basic nutrition—is growing significantly. As healthcare expenses rise, the population ages, and people want natural and preventative health solutions more and more, this industry is increasing quickly. Further driving market expansion are product formulation innovations and the use of cutting-edge technology for customized nutrition. With its worldwide reach, the nutraceutical industry is expected to keep growing and provide significant chances for research and investment in a number of categories, including vitamins, minerals, probiotics, and herbal supplements.
Richard's aventures in two entangled wonderlandsRichard Gill
Since the loophole-free Bell experiments of 2020 and the Nobel prizes in physics of 2022, critics of Bell's work have retreated to the fortress of super-determinism. Now, super-determinism is a derogatory word - it just means "determinism". Palmer, Hance and Hossenfelder argue that quantum mechanics and determinism are not incompatible, using a sophisticated mathematical construction based on a subtle thinning of allowed states and measurements in quantum mechanics, such that what is left appears to make Bell's argument fail, without altering the empirical predictions of quantum mechanics. I think however that it is a smoke screen, and the slogan "lost in math" comes to my mind. I will discuss some other recent disproofs of Bell's theorem using the language of causality based on causal graphs. Causal thinking is also central to law and justice. I will mention surprising connections to my work on serial killer nurse cases, in particular the Dutch case of Lucia de Berk and the current UK case of Lucy Letby.
Cancer cell metabolism: special Reference to Lactate PathwayAADYARAJPANDEY1
Normal Cell Metabolism:
Cellular respiration describes the series of steps that cells use to break down sugar and other chemicals to get the energy we need to function.
Energy is stored in the bonds of glucose and when glucose is broken down, much of that energy is released.
Cell utilize energy in the form of ATP.
The first step of respiration is called glycolysis. In a series of steps, glycolysis breaks glucose into two smaller molecules - a chemical called pyruvate. A small amount of ATP is formed during this process.
Most healthy cells continue the breakdown in a second process, called the Kreb's cycle. The Kreb's cycle allows cells to “burn” the pyruvates made in glycolysis to get more ATP.
The last step in the breakdown of glucose is called oxidative phosphorylation (Ox-Phos).
It takes place in specialized cell structures called mitochondria. This process produces a large amount of ATP. Importantly, cells need oxygen to complete oxidative phosphorylation.
If a cell completes only glycolysis, only 2 molecules of ATP are made per glucose. However, if the cell completes the entire respiration process (glycolysis - Kreb's - oxidative phosphorylation), about 36 molecules of ATP are created, giving it much more energy to use.
IN CANCER CELL:
Unlike healthy cells that "burn" the entire molecule of sugar to capture a large amount of energy as ATP, cancer cells are wasteful.
Cancer cells only partially break down sugar molecules. They overuse the first step of respiration, glycolysis. They frequently do not complete the second step, oxidative phosphorylation.
This results in only 2 molecules of ATP per each glucose molecule instead of the 36 or so ATPs healthy cells gain. As a result, cancer cells need to use a lot more sugar molecules to get enough energy to survive.
Unlike healthy cells that "burn" the entire molecule of sugar to capture a large amount of energy as ATP, cancer cells are wasteful.
Cancer cells only partially break down sugar molecules. They overuse the first step of respiration, glycolysis. They frequently do not complete the second step, oxidative phosphorylation.
This results in only 2 molecules of ATP per each glucose molecule instead of the 36 or so ATPs healthy cells gain. As a result, cancer cells need to use a lot more sugar molecules to get enough energy to survive.
introduction to WARBERG PHENOMENA:
WARBURG EFFECT Usually, cancer cells are highly glycolytic (glucose addiction) and take up more glucose than do normal cells from outside.
Otto Heinrich Warburg (; 8 October 1883 – 1 August 1970) In 1931 was awarded the Nobel Prize in Physiology for his "discovery of the nature and mode of action of the respiratory enzyme.
WARNBURG EFFECT : cancer cells under aerobic (well-oxygenated) conditions to metabolize glucose to lactate (aerobic glycolysis) is known as the Warburg effect. Warburg made the observation that tumor slices consume glucose and secrete lactate at a higher rate than normal tissues.
Multi-source connectivity as the driver of solar wind variability in the heli...Sérgio Sacani
The ambient solar wind that flls the heliosphere originates from multiple
sources in the solar corona and is highly structured. It is often described
as high-speed, relatively homogeneous, plasma streams from coronal
holes and slow-speed, highly variable, streams whose source regions are
under debate. A key goal of ESA/NASA’s Solar Orbiter mission is to identify
solar wind sources and understand what drives the complexity seen in the
heliosphere. By combining magnetic feld modelling and spectroscopic
techniques with high-resolution observations and measurements, we show
that the solar wind variability detected in situ by Solar Orbiter in March
2022 is driven by spatio-temporal changes in the magnetic connectivity to
multiple sources in the solar atmosphere. The magnetic feld footpoints
connected to the spacecraft moved from the boundaries of a coronal hole
to one active region (12961) and then across to another region (12957). This
is refected in the in situ measurements, which show the transition from fast
to highly Alfvénic then to slow solar wind that is disrupted by the arrival of
a coronal mass ejection. Our results describe solar wind variability at 0.5 au
but are applicable to near-Earth observatories.
Slide 1: Title Slide
Extrachromosomal Inheritance
Slide 2: Introduction to Extrachromosomal Inheritance
Definition: Extrachromosomal inheritance refers to the transmission of genetic material that is not found within the nucleus.
Key Components: Involves genes located in mitochondria, chloroplasts, and plasmids.
Slide 3: Mitochondrial Inheritance
Mitochondria: Organelles responsible for energy production.
Mitochondrial DNA (mtDNA): Circular DNA molecule found in mitochondria.
Inheritance Pattern: Maternally inherited, meaning it is passed from mothers to all their offspring.
Diseases: Examples include Leber’s hereditary optic neuropathy (LHON) and mitochondrial myopathy.
Slide 4: Chloroplast Inheritance
Chloroplasts: Organelles responsible for photosynthesis in plants.
Chloroplast DNA (cpDNA): Circular DNA molecule found in chloroplasts.
Inheritance Pattern: Often maternally inherited in most plants, but can vary in some species.
Examples: Variegation in plants, where leaf color patterns are determined by chloroplast DNA.
Slide 5: Plasmid Inheritance
Plasmids: Small, circular DNA molecules found in bacteria and some eukaryotes.
Features: Can carry antibiotic resistance genes and can be transferred between cells through processes like conjugation.
Significance: Important in biotechnology for gene cloning and genetic engineering.
Slide 6: Mechanisms of Extrachromosomal Inheritance
Non-Mendelian Patterns: Do not follow Mendel’s laws of inheritance.
Cytoplasmic Segregation: During cell division, organelles like mitochondria and chloroplasts are randomly distributed to daughter cells.
Heteroplasmy: Presence of more than one type of organellar genome within a cell, leading to variation in expression.
Slide 7: Examples of Extrachromosomal Inheritance
Four O’clock Plant (Mirabilis jalapa): Shows variegated leaves due to different cpDNA in leaf cells.
Petite Mutants in Yeast: Result from mutations in mitochondrial DNA affecting respiration.
Slide 8: Importance of Extrachromosomal Inheritance
Evolution: Provides insight into the evolution of eukaryotic cells.
Medicine: Understanding mitochondrial inheritance helps in diagnosing and treating mitochondrial diseases.
Agriculture: Chloroplast inheritance can be used in plant breeding and genetic modification.
Slide 9: Recent Research and Advances
Gene Editing: Techniques like CRISPR-Cas9 are being used to edit mitochondrial and chloroplast DNA.
Therapies: Development of mitochondrial replacement therapy (MRT) for preventing mitochondrial diseases.
Slide 10: Conclusion
Summary: Extrachromosomal inheritance involves the transmission of genetic material outside the nucleus and plays a crucial role in genetics, medicine, and biotechnology.
Future Directions: Continued research and technological advancements hold promise for new treatments and applications.
Slide 11: Questions and Discussion
Invite Audience: Open the floor for any questions or further discussion on the topic.
THE IMPORTANCE OF MARTIAN ATMOSPHERE SAMPLE RETURN.Sérgio Sacani
The return of a sample of near-surface atmosphere from Mars would facilitate answers to several first-order science questions surrounding the formation and evolution of the planet. One of the important aspects of terrestrial planet formation in general is the role that primary atmospheres played in influencing the chemistry and structure of the planets and their antecedents. Studies of the martian atmosphere can be used to investigate the role of a primary atmosphere in its history. Atmosphere samples would also inform our understanding of the near-surface chemistry of the planet, and ultimately the prospects for life. High-precision isotopic analyses of constituent gases are needed to address these questions, requiring that the analyses are made on returned samples rather than in situ.
Earliest Galaxies in the JADES Origins Field: Luminosity Function and Cosmic ...Sérgio Sacani
We characterize the earliest galaxy population in the JADES Origins Field (JOF), the deepest
imaging field observed with JWST. We make use of the ancillary Hubble optical images (5 filters
spanning 0.4−0.9µm) and novel JWST images with 14 filters spanning 0.8−5µm, including 7 mediumband filters, and reaching total exposure times of up to 46 hours per filter. We combine all our data
at > 2.3µm to construct an ultradeep image, reaching as deep as ≈ 31.4 AB mag in the stack and
30.3-31.0 AB mag (5σ, r = 0.1” circular aperture) in individual filters. We measure photometric
redshifts and use robust selection criteria to identify a sample of eight galaxy candidates at redshifts
z = 11.5 − 15. These objects show compact half-light radii of R1/2 ∼ 50 − 200pc, stellar masses of
M⋆ ∼ 107−108M⊙, and star-formation rates of SFR ∼ 0.1−1 M⊙ yr−1
. Our search finds no candidates
at 15 < z < 20, placing upper limits at these redshifts. We develop a forward modeling approach to
infer the properties of the evolving luminosity function without binning in redshift or luminosity that
marginalizes over the photometric redshift uncertainty of our candidate galaxies and incorporates the
impact of non-detections. We find a z = 12 luminosity function in good agreement with prior results,
and that the luminosity function normalization and UV luminosity density decline by a factor of ∼ 2.5
from z = 12 to z = 14. We discuss the possible implications of our results in the context of theoretical
models for evolution of the dark matter halo mass function.
This presentation explores a brief idea about the structural and functional attributes of nucleotides, the structure and function of genetic materials along with the impact of UV rays and pH upon them.
13. MY CAREER, GEOGRAPHY & NUMBERS (THIS IS PLDI AFTER ALL)
1980
1984
1985
1987
2001
14. MY CAREER, GEOGRAPHY & NUMBERS (THIS IS PLDI AFTER ALL)
1980
1984
1985
1987
2001
15. MY CAREER, GEOGRAPHY & NUMBERS (THIS IS PLDI AFTER ALL)
1980
1984
1985
1987
2001
G*DDAMN FOREIGNER
16. MY CAREER, GEOGRAPHY & NUMBERS (THIS IS PLDI AFTER ALL)
1980
1984
1985
1987
2001
G*DDAMN FOREIGNER
17.
18. WHAT’S LOVE GOT TO DO WITH IT
πrogramming
λanguages
You are here because
you fell in love with
something about
programming languages.
19. YOU CAN’T JUST KEEP YOUR FINGERS OFF
πrogramming
λanguages
The most fundamental area
of computer science. If you
don’t have a language, you
can’t compute.
20. YOU CAN’T JUST KEEP YOUR FINGERS OFF
πrogramming
λanguages
The most fundamental area
of computer science. If you
don’t have a language, you
can’t compute.
Developers primarily use
programming languages.
The tools we build have
meaning for them.
21. YOU CAN’T JUST KEEP YOUR FINGERS OFF
πrogramming
λanguages
The most fundamental area
of computer science. If you
don’t have a language, you
can’t compute.
Developers primarily use
programming languages.
The tools we build have
meaning for them.
You will get to work with
elegant mathematics and,
some of you will develop
new mathematics.
22. YOU CAN’T JUST KEEP YOUR FINGERS OFF
πrogramming
λanguages
The most fundamental area
of computer science. If you
don’t have a language, you
can’t compute.
Developers primarily use
programming languages.
The tools we build have
meaning for them.
You will get to work with
elegant mathematics and,
some of you will develop
new mathematics.
Where else do
you get to work
with the coolest
professors on
the planet?
30. AND LOVE IS WHAT GETS YOU BACK ON TRACK.
But really, if you don’t love
PL, getting a PhD is hard.
31. AND LOVE IS WHAT GETS YOU BACK ON TRACK.
But really, if you don’t love
PL, getting a PhD is hard.
Hard because it’s
an old and now
‘hidden’ discipline.
32. AND LOVE IS WHAT GETS YOU BACK ON TRACK.
But really, if you don’t love
PL, getting a PhD is hard.
Hard because it’s
an old and now
‘hidden’ discipline.
HARD because it isn’t
‘hot’ with IT industry.
33. AND LOVE IS WHAT GETS YOU BACK ON TRACK.
But really, if you don’t love
PL, getting a PhD is hard.
Hard because it’s
an old and now
‘hidden’ discipline.
HARD because it isn’t
‘hot’ with IT industry.
H.A.R.D.
35. ONE LAST WARNING: IF YOU DON’T LOVE IT, LEAVE IT.
If you want to be famous, get
into Artificial Intelligence.
36. ONE LAST WARNING: IF YOU DON’T LOVE IT, LEAVE IT.
If you want to be famous, get
into Artificial Intelligence.
If you want to make money,
do Big Data.
37. ONE LAST WARNING: IF YOU DON’T LOVE IT, LEAVE IT.
If you want to be famous, get
into Artificial Intelligence.
If you want to make money,
do Big Data.
If you want a career,
switch majors. I hear our
Business School is looking
for students.
39. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
40. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
41. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
1988
(It doesn’t have to be
love at first sight.)
42. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
COOL! WORKING WITH
CARTWRIGHT AND FAGAN
1989
1988
(It doesn’t have to be
love at first sight.)
43. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
COOL! WORKING WITH
CARTWRIGHT AND FAGAN
1989
1993/94
THE ONLY USER OF
ANDREW WRIGHT’S SOFT
SCHEME
1988
(It doesn’t have to be
love at first sight.)
44. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
COOL! WORKING WITH
CARTWRIGHT AND FAGAN
1989
1993/94
THE ONLY USER OF
ANDREW WRIGHT’S SOFT
SCHEME
1988
(It doesn’t have to be
love at first sight.)
CO-CREATED SPIDEY
SCHEME WITH CORMAC
FLANAGAN
1995/97
45. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
COOL! WORKING WITH
CARTWRIGHT AND FAGAN
1989
1993/94
THE ONLY USER OF
ANDREW WRIGHT’S SOFT
SCHEME
1988
(It doesn’t have to be
love at first sight.)
CO-CREATED SPIDEY
SCHEME WITH CORMAC
FLANAGAN
1995/97
MODULAR SPIDER WITH
PHILIPPE MEUNIER
1998/2003
46. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1987
CORKY CARTWRIGHT
“LET’S WORK ON TYPES
FOR SCHEME”
COOL! WORKING WITH
CARTWRIGHT AND FAGAN
1989
1993/94
THE ONLY USER OF
ANDREW WRIGHT’S SOFT
SCHEME
1988
(It doesn’t have to be
love at first sight.)
CO-CREATED SPIDEY
SCHEME WITH CORMAC
FLANAGAN
1995/97
MODULAR SPIDER WITH
PHILIPPE MEUNIER
1998/2003
2005-2016
TYPED RACKET W/
TOBIN-HOCHSTADT
49. (define (tautology? p)
(bond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
THERE IS LOTS OF LISP OUT THERE
AND THEY MAY WANT TYPES.
1987
50. (define (tautology? p)
(bond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
THERE IS LOTS OF LISP OUT THERE
AND THEY MAY WANT TYPES.
1987
WE WANT WIDE-SPECTRUM
PROGRAMMING.
51. (define (tautology? p)
(bond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
THERE IS LOTS OF LISP OUT THERE
AND THEY MAY WANT TYPES.
PROGRAMMERS DO NOT WANT TO
COPE WITH THE IDIOSYNCRASIES OF
TYPE SYSTEMS.
1987
WE WANT WIDE-SPECTRUM
PROGRAMMING.
52. (define (tautology? p)
(bond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
THERE IS LOTS OF LISP OUT THERE
AND THEY MAY WANT TYPES.
PROGRAMMERS DO NOT WANT TO
COPE WITH THE IDIOSYNCRASIES OF
TYPE SYSTEMS.
IT’LL COME TRUE IN
10 OR 20 YEARS.
1987
WE WANT WIDE-SPECTRUM
PROGRAMMING.
53. (define (tautology? p)
(bond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
THERE IS LOTS OF LISP OUT THERE
AND THEY MAY WANT TYPES.
PROGRAMMERS DO NOT WANT TO
COPE WITH THE IDIOSYNCRASIES OF
TYPE SYSTEMS.
IT’LL COME TRUE IN
10 OR 20 YEARS.
1987
WE WANT WIDE-SPECTRUM
PROGRAMMING.
54. WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
(tautology? true)
(tautology? (lambda (x) (lambda (y) (or x y))))
55. WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
(tautology? true)
(tautology? (lambda (x) (lambda (y) (or x y))))
56. WHAT’S THE TYPE OF AN UNTYPED PROGRAM?
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
(tautology? true)
(tautology? (lambda (x) (lambda (y) (or x y))))
58. WE CAN SAY IT IN OCAML
type proposition = InL of bool | InR of (bool -> proposition)
let rec is_tautology p =
match p with
| InL b -> b
| InR p -> is_tautology(p true) && is_tautology(p false)
is_tautology (InR(fun x -> InL true))
is_tautology (InR(fun x -> InR(fun y -> or then InL x else InL y)))
59. WE CAN SAY IT IN OCAML
type proposition = InL of bool | InR of (bool -> proposition)
let rec is_tautology p =
match p with
| InL b -> b
| InR p -> is_tautology(p true) && is_tautology(p false)
is_tautology (InR(fun x -> InL true))
is_tautology (InR(fun x -> InR(fun y -> or then InL x else InL y)))
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
60. WE CAN SAY IT IN OCAML
type proposition = InL of bool | InR of (bool -> proposition)
let rec is_tautology p =
match p with
| InL b -> b
| InR p -> is_tautology(p true) && is_tautology(p false);;
is_tautology (InR(fun x -> InL true))
is_tautology (InR(fun x -> InR(fun y -> or then InL x else InL y)))
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
WE DON’T WANT TO WRITE DOWN TYPE
DEFINITIONS. WE DON’T WANT TO ADD
INSERTIONS AND PROJECTIONS.
61. SO HOW COULD WE SAY THIS IN SCHEME?
▸ replace ML’s type algebra (x, *, ->, …)
▸ with Remy’s extensible records exclusively
▸ make it work for 100-line purely functional
programs in quasi-Scheme
62. SO HOW COULD WE SAY THIS IN SCHEME?
▸ replace ML’s type algebra (x, *, ->, …)
▸ with Remy’s extensible records exclusively
▸ make it work for 100-line purely functional
programs in quasi-Scheme
▸ grow it to full Chez Scheme
▸ whole-program inference
▸ success: speed-up
63. WHAT SOFT SCHEME CAN DO
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
(-> (μ (Proposition)
(+ Boolean (-> Boolean Proposition)))
Boolean)
infer via modified HM
64. WHAT SOFT SCHEME CAN DO
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
(-> (μ (Proposition)
(+ Boolean (-> Boolean Proposition)))
Boolean)
infer via modified HM
65. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1989
1993
FAGAN CAN CHECK 100 LINES.
WRIGHT CAN CHECK 1,000 LINES
66. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1989
1993
FAGAN CAN CHECK 100 LINES.
WRIGHT CAN CHECK 1,000 LINES
YOURS TRULY STRUGGLES WITH
DOZENS OF SMALL AND LARGE
PROGRAMS.
1993/94
68. WHAT SOFT SCHEME CAN’T DO,
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (p false))]))
DOZENS OF LINES FOR
THE TYPE MISMATCH W/O
TELLING THE DEV WHERE
THINGS WENT WRONG
69. WHAT SOFT SCHEME CAN’T DO,
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (p false))]))
any sensible type-error
message,
just one, please .. .. ..
formulate
DOZENS OF LINES FOR
THE TYPE MISMATCH W/O
TELLING THE DEV WHERE
THINGS WENT WRONG
70. WHAT SOFT SCHEME CAN’T DO,
any sensible error message,
just one, please .. .. ..
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (p false))]))The Problem:
Gaussian elimination over equations in an
uninterpreted algebras cannot point back to
program when the system (of eqs) is inconsistent.
71. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1989
1993
FAGAN CAN CHECK 100 LINES.
WRIGHT CAN CHECK 1,000 LINES
YOURS TRULY STRUGGLES WITH
DOZENS OF SMALL AND LARGE
PROGRAMS.
1993/94
NEVIN HEINZE SHOWED YOURS
TRULY SET-BASED ANALYSIS,
AND IT FELT LIKE AN IDEA THAT
COULD HELP OUT HERE.
72. HEYA, DID YOU CATCH THIS MISTAKE?
▸ derive sub-typing constraints from code
e.g. dom(f) < rng(g) or int < dom(h)
▸ solve via the transitive closure through the
constructors in the constraint algebra
▸ find type errors by comparing specified
constraints for prime with computed ones
73. WHAT SPIDER CAN DO
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (tautology? (p false)))]))
(-> (μ (Proposition)
(U Boolean (-> Boolean Proposition)))
Boolean)
infer via componential SBA
74. AND THEY CAN EXPLAIN ERRORS, HALLELUJAH!
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (p false))]))
(-> (μ (Proposition)
(U Boolean (-> Proposition)))
Boolean)
inspect errors via
flow graphs and
slices drawn on
top of code
75. AND THEY CAN EXPLAIN ERRORS, HALLELUJAH!
(define (tautology? p)
(cond
[(boolean? p) p]
[else (and (tautology? (p true)) (p false))]))
(-> (μ (Proposition)
(U Boolean (-> Proposition)))
Boolean)
inspect errors via
flow graphs and
slices drawn on
top of code
EVEN WITH 3RD
UNDERGRADUATES
76. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1995-97
FLANAGAN CAN CHECK 3,000 LINES
STUDENT PROGRAMS
FLANAGAN CAN EXPLAIN ERRORS
77. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1995-97
FLANAGAN CAN CHECK 3,000 LINES
STUDENT PROGRAMS
FLANAGAN CAN EXPLAIN ERRORS
1998
WE CANNOT ANALYZE THE
COMPLETE CODE BASE OF THE
SYSTEM ITSELF OR ITS CONTEXT.
WE CAN’T EVEN ‘MODULARIZE’
THE ANALYSIS PROPERLY.
78. WHAT THEY CAN’T DO, ABSOLUTELY NOT, NOT FOR CRYING OUT LOUD
1,000 lines ~ 1 min
2,000 lines ~ 2 min
3,000 lines ~ 3 min
3,500 lines ~ 20 min
40,000 lines ~ 10 hrs
an analysis of large
programs or a truly modular
analysis of such systems
BUT …
79. WHAT THEY CAN’T DO, ABSOLUTELY NOT, NOT FOR CRYING OUT LOUD
1,000 lines ~ 1 min
2,000 lines ~ 2 min
3,000 lines ~ 3 min
3,500 lines ~ 20 min
40,000 lines ~ 10 hrs
an analysis of large
programs or a truly modular
analysis of such systems
BUT …
80. WHAT THEY CAN’T DO, ABSOLUTELY NOT, NOT FOR CRYING OUT LOUD
1,000 lines ~ 1 min
2,000 lines ~ 2 min
3,000 lines ~ 3 min
3,500 lines ~ 20 min
40,000 lines ~ 10 hrs
an analysis of large
programs or a truly modular
analysis of such systems
BUT …
WE KNOW TRANSITIVE CLOSURE IS
BASICALLY O(N^3) .. BUT ..
81. WHAT THEY CAN’T DO, ABSOLUTELY NOT, NOT FOR CRYING OUT LOUD
1,000 lines ~ 1 min
2,000 lines ~ 2 min
3,000 lines ~ 3 min
3,500 lines ~ 20 min
40,000 lines ~ 10 hrs
an analysis of large
programs or a truly modular
analysis of such systems
BUT …
WE KNOW TRANSITIVE CLOSURE IS
BASICALLY O(N^3) .. BUT ..
O(n^8)
82. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1998
1995-97
FLANAGAN CAN CHECK 3,000 LINES
FLANAGAN CAN EXPLAIN ERRORS
WE CANNOT ANALYZE THE
COMPLETE CODE BASE OF THE
SYSTEM ITSELF OR ITS CONTEXT.
WE CAN’T EVEN ‘MODULARIZE’
THE ANALYSIS PROPERLY.
83. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
1998
1995-97
FLANAGAN CAN CHECK 3,000 LINES
YOURS TRULY SAYS
PROGRAMMERS USE
ASSERTIONS, THEY WILL USE
“CONTRACTS.”
FLANAGAN CAN EXPLAIN ERRORS
WE CANNOT ANALYZE THE
COMPLETE CODE BASE OF THE
SYSTEM ITSELF OR ITS CONTEXT.
WE CAN’T EVEN ‘MODULARIZE’
THE ANALYSIS PROPERLY.
84. HEYA, DID YOU CATCH THIS MISTAKE?
▸ modules comes with contracts
▸ type inference turns contracts into
constraints
▸ .. and stores derived constraints per
module
85. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
2002/03
THE DREAM COME TRUE. WE’RE DONE.
MEUNIER’S MRSPIDE
CAN DO IT ALL
86. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
2002/03
THE DREAM COME TRUE. WE’RE DONE.
MEUNIER’S MRSPIDE
CAN DO IT ALL
2005
PROGRAMMERS DON’T REALLY
WRITE GOOD CONTRACTS.
THE TYPES BECOME HUGE AND
INCOMPREHENSIBLE. EVEN WITH GOOD CONTRACTS,
MODULAR ANALYSIS REMAINS A
PIPE DREAM.
87. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
2002/03
THE DREAM COME TRUE. WE’RE DONE.
MEUNIER’S MRSPIDE
CAN DO IT ALL
2005
PROGRAMMERS DON’T REALLY
WRITE GOOD CONTRACTS.
THE TYPES BECOME HUGE AND
INCOMPREHENSIBLE. EVEN WITH GOOD CONTRACTS,
MODULAR ANALYSIS REMAINS A
PIPE DREAM.
88. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
2002/03
THE DREAM COME TRUE. WE’RE DONE.
MEUNIER’S MRSPIDE
CAN DO IT ALL
YOURS TRULY SAYS
“NEVER MIND.”
2005
PROGRAMMERS DON’T REALLY
WRITE GOOD CONTRACTS.
THE TYPES BECOME HUGE AND
INCOMPREHENSIBLE. EVEN WITH GOOD CONTRACTS,
MODULAR ANALYSIS REMAINS A
PIPE DREAM.
89. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
2002/03
THE DREAM COME TRUE. WE’RE DONE.
MEUNIER’S MRSPIDE
CAN DO IT ALL
YOURS TRULY SAYS
“NEVER MIND.”
2005
PROGRAMMERS DON’T REALLY
WRITE GOOD CONTRACTS.
THE TYPES BECOME HUGE AND
INCOMPREHENSIBLE. EVEN WITH GOOD CONTRACTS,
MODULAR ANALYSIS REMAINS A
PIPE DREAM.
THE PROBLEM HAD
BECOME REAL. IT WAS
TIME TO THINK
DIFFERENTLY
90. LET’S ADD TYPES INCREMENTALLY
TO A CODE BASE AND MAKE SURE
THE COMBINATION IS SOUND.
109. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
110. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
WHAT’S
MISSING?
111. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
112. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
OBJECT-
ORIENTED RACKET
113. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
OBJECT-
ORIENTED RACKET
THERE IT
IS!
THERE IT
IS!
114. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
115. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
WE HAVE A DESIGN FOR OO RACKET.
2013
116. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
WE HAVE A DESIGN FOR OO RACKET.
2013
WE HAVE AN IMPLEMENTATION.
2015
117. THE UPS AND DOWNS OF ONE OF MY OWN RESEARCH TOPICS
THE IDEA IS WORKED OUT
THE CONTRACTS WORK
THE TYPE SYSTEMS ACCOMMODATES
THE EXISTING IDIOMS.
2006-2010
WE HAVE A DESIGN FOR OO RACKET.
2013
WE HAVE AN IMPLEMENTATION.
2015
EVERYTHING
HUNKY DORY?
121. WHAT DO YOU DO WHEN YOU GET INTO SUCH A BAD SITUATION?
IS SOUND GRADUAL TYPING DEAD?
2016
1993
1996
2002
2009 2015
1991
TYPE INFERENCE
INCREMENTALLY ADDED
EXPLICITLY STATIC TYPES
122. WHAT DO YOU DO WHEN YOU GET INTO SUCH A BAD SITUATION?
IS SOUND GRADUAL TYPING DEAD?
2016
1993
1996
2002
2009 2015
1991
TYPE INFERENCE
INCREMENTALLY ADDED
EXPLICITLY STATIC TYPES
RESEARCH IS WHEN IT CAN FAIL
123. WHAT DO YOU DO WHEN YOU GET INTO SUCH A BAD SITUATION?
IS SOUND GRADUAL TYPING DEAD?
2016
1993
1996
2002
2009 2015
1991
TYPE INFERENCE
INCREMENTALLY ADDED
EXPLICITLY STATIC TYPES
124. WHAT DO YOU DO WHEN YOU GET INTO SUCH A BAD SITUATION?
IS SOUND GRADUAL TYPING DEAD?
2016
1993
1996
2002
2009 2015
1991
TYPE INFERENCE
INCREMENTALLY ADDED
EXPLICITLY STATIC TYPES
THIS HAPPENS TO ADVISORS
WITH A LONG-TERM RESEARCH
PROGRAM
125. WHAT DO YOU DO WHEN YOU GET INTO SUCH A BAD SITUATION?
IS SOUND GRADUAL TYPING DEAD?
2016
1993
1996
2002
2009 2015
1991
TYPE INFERENCE
INCREMENTALLY ADDED
EXPLICITLY STATIC TYPES
126. WHAT DO YOU DO WHEN YOU GET INTO SUCH A BAD SITUATION?
IS SOUND GRADUAL TYPING DEAD?
2016
1993
1996
2002
2009 2015
1991
TYPE INFERENCE
INCREMENTALLY ADDED
EXPLICITLY STATIC TYPES
AND IT HAPPENS TO STUDENTS
DURING A PHD PROGRAM.
127. PHD RESEARCH: BE PREPARED FOR UPS AND DOWNS
PhD research, like a
relationship, has its
ups and downs.
The downs can feel
very down. Really.
The memories of
“falling in love” can
get you going again.
The ups feel good.
128. PHD RESEARCH: BE PREPARED FOR UPS AND DOWNS
PhD research, like a
relationship, has its
ups and downs.
The downs can feel
very down. Really.
The memories of
“falling in love” can
get you going again.
The ups feel good.
YES, THIS IS IRRATIONAL BUT WHILE DESIGN,
ENGINEERING, & SCIENCE PRODUCE RATIONAL RESULTS,
THE MOTIVATION NEEDS AN IRRATIONAL ELEMENT.
129. PHD RESEARCH: BE PREPARED FOR UPS AND DOWNS
PhD research, like a
relationship, has its
ups and downs.
The downs can feel
very down. Really.
The memories of
“falling in love” can
get you going again.
The ups feel good.
▸ And your advisor’s emotional
wavelength matters, a lot.
▸ So choose your advisor well.
130. PHD RESEARCH: BE PREPARED FOR UPS AND DOWNS
PhD research, like a
relationship, has its
ups and downs.
The downs can feel
very down. Really.
The memories of
“falling in love” can
get you going again.
The ups feel good.
▸ And your advisor’s emotional
wavelength matters, a lot.
▸ So choose your advisor well.
LOVE, LOVE IS WHAT YOU REALLY NEED.
131. THE END
▸ And two dozen PhD students, who had
the guts to work with me and believed
I could be their scientific and
emotional guide
▸ Daniel Friedman, my advisor,
for showing me what an advisor
can do for a PhD student
▸ Herrn G. Dopfer, my high school
mathematics teacher, for encouraging me to
not take English, focus on math and physics,
and go to university, a first for our family