Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Developing Disciplined ProgramsSeminar at the James M. Hull College of Business
Clément Aubert
Augusta University30th January 2017
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Introduction: What is the problem with my program?
program+
data
program+
data
answer
execution
code compilation
programming languagecoding
— operating system
— network
— hardware
— operating system
— network
— hardware
user-side
programmer-side
2
Developing Disciplined ProgramsSeminar at the James M. Hull College of Business
Clément Aubert
Augusta University30th January 2017
Developing Disciplined Programing LanguagesSeminar at the James M. Hull College of Business
Clément Aubert
Augusta University30th January 2017
Introduction: Type Theory
Program 1
Program 2
Data
Boolean (output)Integer (output)
Boolean (input)Integer (input)
5
Introduction: Type Theory
Program 1
Program 2
Data
Boolean (output)Integer (output)
Boolean (input)Integer (input)
5
Introduction: Type Theory
Program 1
Program 2
Data
Boolean (output)Integer (output)
Boolean (input)Integer (input)
5
Introduction: Type Theory
⊢ Program 1 : Bool → Int
⊢ Program 2 : Int → Bool ⊢ data : Int
⊢ Program 2 (data) : Bool
⊢ Program1 (Program 2 (data)) : Int
«
⊢ Bool → Int⊢ Int → Bool ⊢ Int
⊢ Bool⊢ Int
«
⊢x Bool → Int
⊢y Int → Bool ⊢z Int
⊢y+z+c Bool
⊢y+z+c+x+c′ Int
6
Introduction: Type Theory
⊢ Program 1 : Bool → Int
⊢ Program 2 : Int → Bool ⊢ data : Int
⊢ Program 2 (data) : Bool
⊢ Program1 (Program 2 (data)) : Int
«
⊢ Bool → Int⊢ Int → Bool ⊢ Int
⊢ Bool⊢ Int
«
⊢x Bool → Int
⊢y Int → Bool ⊢z Int
⊢y+z+c Bool
⊢y+z+c+x+c′ Int
6
Introduction: Type Theory
⊢ Program 1 : Bool → Int
⊢ Program 2 : Int → Bool ⊢ data : Int
⊢ Program 2 (data) : Bool
⊢ Program1 (Program 2 (data)) : Int
«
⊢ Bool → Int⊢ Int → Bool ⊢ Int
⊢ Bool⊢ Int
«
⊢x Bool → Int
⊢y Int → Bool ⊢z Int
⊢y+z+c Bool
⊢y+z+c+x+c′ Int
6
Introduction: Computational Complexity
Explicit
Computational Complexity— Sort problem by their difficulty
— Order of magnitude
— Benchmark: Turing Machine
Complete ProblemsLogarithmic Space (L): Acyclicity in undirected graphNon-Deterministic Logarithmic Space (NL): Acyclicity in directedgraphPolynomial Time (Ptime): Circuit value problem
— Machine-dependent
— “External” clock and “external” measure on the tape
7
Introduction: Computational Complexity
Explicit
Computational Complexity— Sort problem by their difficulty
— Order of magnitude
— Benchmark: Turing Machine
Complete ProblemsLogarithmic Space (L): Acyclicity in undirected graphNon-Deterministic Logarithmic Space (NL): Acyclicity in directedgraphPolynomial Time (Ptime): Circuit value problem
— Machine-dependent
— “External” clock and “external” measure on the tape
7
Introduction: Computational Complexity
Explicit
Computational Complexity— Sort problem by their difficulty
— Order of magnitude
— Benchmark: Turing Machine
Complete ProblemsLogarithmic Space (L): Acyclicity in undirected graphNon-Deterministic Logarithmic Space (NL): Acyclicity in directedgraphPolynomial Time (Ptime): Circuit value problem
— Machine-dependent
— “External” clock and “external” measure on the tape
7
Introduction: Computational Complexity
Explicit
Computational Complexity— Sort problem by their difficulty
— Order of magnitude
— Benchmark: Turing Machine
Complete ProblemsLogarithmic Space (L): Acyclicity in undirected graphNon-Deterministic Logarithmic Space (NL): Acyclicity in directedgraphPolynomial Time (Ptime): Circuit value problem
— Machine-dependent
— “External” clock and “external” measure on the tape
7
Introduction: Computational Complexity
Explicit Computational Complexity— Sort problem by their difficulty
— Order of magnitude
— Benchmark: Turing Machine
Complete ProblemsLogarithmic Space (L): Acyclicity in undirected graphNon-Deterministic Logarithmic Space (NL): Acyclicity in directedgraphPolynomial Time (Ptime): Circuit value problem
— Machine-dependent
— “External” clock and “external” measure on the tape
7
Introduction: Implicit Computational Complexity
(Dal Lago, 2011, p. 90)(lacl.fr/~caubert/AU/)
Implicit Computational Complexity (ICC)— Machine-independent
— Without explicit bounds
Some Achievements— Fine-grained type systems for Ptime, L, NL, Pspace, etc.
— Differential privacy (Gaboardi et al., 2013)
— Computation over the reals (Férée et al., 2015)
8
Introduction: Implicit Computational Complexity
(Dal Lago, 2011, p. 90)(lacl.fr/~caubert/AU/)
Implicit Computational Complexity (ICC)— Machine-independent
— Without explicit bounds
Some Achievements— Fine-grained type systems for Ptime, L, NL, Pspace, etc.
— Differential privacy (Gaboardi et al., 2013)
— Computation over the reals (Férée et al., 2015)
8
Introduction: Implicit Computational Complexity
(Dal Lago, 2011, p. 90)(lacl.fr/~caubert/AU/)
Implicit Computational Complexity (ICC)— Machine-independent
— Without explicit bounds
Some Achievements— Fine-grained type systems for Ptime, L, NL, Pspace, etc.
— Differential privacy (Gaboardi et al., 2013)
— Computation over the reals (Férée et al., 2015)
8
1 IntroductionWhat is the problem with my program?Type TheoryComputational ComplexityImplicit Computational Complexity
2 Automata and ICC
3 Logic Programming
4 A New Correspondence
5 Perspectives
1 Introduction
2 Automata and ICCWhat is ICC, really?DefinitionsMain Characterizations
3 Logic Programming
4 A New Correspondence
5 Perspectives
Automata and ICC: What is ICC, really?
Machine-dependent
Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: What is ICC, really?
Machine-dependent Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: What is ICC, really?
Machine-dependent Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: What is ICC, really?
Machine-dependent Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: What is ICC, really?
Machine-dependent Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: What is ICC, really?
Machine-dependent Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: What is ICC, really?
Machine-dependent Machine-independent
Exp
licit
boun
ds
Turing machine,Random access machine,Counter machine, . . .
Bounded recursion on notation (Cobham, 1965),Bounded linear logic (Girard et al., 1992),Bounded arithmetic (Buss, 1986), . . .
Impl
icit
boun
ds
Automaton,Auxiliary pushdown machine,. . .
Descriptive complexity (Fagin, 1973),Recursion on notation (Bellantoni and Cook, 1992),Tiered recurrence (Leivant, 1993), . . .
(Girard et al., 1992, p. 18)
(Ibarra, 1971, p. 88)
11
Automata and ICC: Definitions
2NFA(k,p)For k ⩾ 1, p ⩾ 0, a 2-way non-deterministic finite automaton withk-heads and p pushdown stacks is a tupleM = {S,A,B,⊳,⊲,⊡, σ} where:
— S is the finite set of states;
— A is the input alphabet, B is the stack alphabet;
— ⊳ and ⊲ are the left and right endmarkers, ⊳,⊲∉ A;
— ⊡ is the bottom symbol of the stack, ⊡ ∉ B;
—σ ⊆ (S × (A ∪ {⊳,⊲})k × (B ∪ {⊡})p)× (S × {−1,0,+1}k × {pop,peek,push(b)}p)
2NFA(k,p) = {L(M) ∣ M a 2NFA(k,p)}2NFA(∗,p) = ∪k⩾12NFA(k,p)
12
Automata and ICC: Main Characterizations
Main characterizationsAutomata Language / Predicate
2NFA(1,2) Computable2NFA(∗,1) Polynomial time (Ptime)2NFA(∗,0) Non-Deterministic Logarithmic space (NL)2NFA(1,1) Context-free2NFA(1,0) Regular
QuestionCan we use those results to develop disciplined programinglanguages?
13
Automata and ICC: Main Characterizations
Main characterizationsAutomata Language / Predicate
2NFA(1,2) Computable2NFA(∗,1) Polynomial time (Ptime)2NFA(∗,0) Non-Deterministic Logarithmic space (NL)2NFA(1,1) Context-free2NFA(1,0) Regular
QuestionCan we use those results to develop disciplined programinglanguages?
13
1 Introduction
2 Automata and ICC
3 Logic ProgrammingRemindersFirst-order TermsFlows and WiringsSubsets of Flows
4 A New Correspondence
5 Perspectives
Logic Programming: Reminders
Logic Programming— A programming paradigm
— Computation = unification
— Turing-complete
Used in . . .— Prolog, Datalog
— Type-inference in Haskell and ML
— Models of Linear Logic (Baillot and Pedicini, 2001; Girard,2013)
15
Logic Programming: Reminders
Logic Programming— A programming paradigm
— Computation = unification
— Turing-complete
Used in . . .— Prolog, Datalog
— Type-inference in Haskell and ML
— Models of Linear Logic (Baillot and Pedicini, 2001; Girard,2013)
15
Logic Programming: First-order Terms
First-order termst ,u := c,d, . . . ∈ C
∣ x ,y ,z, . . . ∈ V∣ An(t1, . . . , tn) n ∈ N∗
∣ t ●u with t ●u ●v := t ●(u ●v)
Example
●
x A1
c
●
A2
y y
A1
z
x ●A1(c) A2(y ,y) ●A1(z)
16
Logic Programming: First-order Terms
First-order termst ,u := c,d, . . . ∈ C
∣ x ,y ,z, . . . ∈ V∣ An(t1, . . . , tn) n ∈ N∗
∣ t ●u with t ●u ●v := t ●(u ●v)
Example
●
x A1
c
●
A2
w w
A1
z
x ●A1(c) A2(w ,w) ●A1(z)
16
Logic Programming: First-order Terms
First-order termst ,u := c,d, . . . ∈ C
∣ x ,y ,z, . . . ∈ V∣ An(t1, . . . , tn) n ∈ N∗
∣ t ●u with t ●u ●v := t ●(u ●v)
Example
●
x A1
c
●
A2
w w
A1
z
x ●A1(c) A2(w ,w) ●A1(z) Unifiable?
16
Logic Programming: First-order Terms
First-order termst ,u := c,d, . . . ∈ C
∣ x ,y ,z, . . . ∈ V∣ An(t1, . . . , tn) n ∈ N∗
∣ t ●u with t ●u ●v := t ●(u ●v)
Example
●
x A1
c
●
A2
w w
A1
z
x ●A1(c) A2(w ,w) ●A1(z) Unifiable?
✓
θ = [x ← A2(w ,w);z ← c]
16
Logic Programming: First-order Terms
First-order termst ,u := c,d, . . . ∈ C
∣ x ,y ,z, . . . ∈ V∣ An(t1, . . . , tn) n ∈ N∗
∣ t ●u with t ●u ●v := t ●(u ●v)
Example
●
x A1
c
●
A2
w w
A1
d
x ●A1(c) A2(w ,w) ●A1(d) Unifiable?
×
c ≠ d
16
Logic Programming: Flows and Wirings
Flows and WiringsA flow is a pair of terms t ↼ u with Var(t) ⊆ Var(u).A wiring is a finite set of flows.
Composition of FlowsLet u ↼ v and t ↼ w be two flows, Var(v) ∩ Var(w) = ∅,
(u ↼ v)(t ↼ w) :=⎧⎪⎪⎨⎪⎪⎩
uθ ↼ wθ if vθ = tθ
undefined otherwise
Examples(f(x)↼ x)(f(y)↼ g(y)) = f(f(y))↼ g(y)
(x ●c↼ (y ●y) ●x)((c ●c) ●x ↼ y ●x) = x ●c↼ c ●x
17
Logic Programming: Flows and Wirings
Flows and WiringsA flow is a pair of terms t ↼ u with Var(t) ⊆ Var(u).A wiring is a finite set of flows.
Composition of FlowsLet u ↼ v and t ↼ w be two flows, Var(v) ∩ Var(w) = ∅,
(u ↼ v)(t ↼ w) :=⎧⎪⎪⎨⎪⎪⎩
uθ ↼ wθ if vθ = tθ
undefined otherwise
Examples(f(x)↼ x)(f(y)↼ g(y)) = f(f(y))↼ g(y)
(x ●c↼ (y ●y) ●x)((c ●c) ●x ↼ y ●x) = x ●c↼ c ●x
17
Logic Programming: Flows and Wirings
Flows and WiringsA flow is a pair of terms t ↼ u with Var(t) ⊆ Var(u).A wiring is a finite set of flows.
Composition of FlowsLet u ↼ v and t ↼ w be two flows, Var(v) ∩ Var(w) = ∅,
(u ↼ v)(t ↼ w) :=⎧⎪⎪⎨⎪⎪⎩
uθ ↼ wθ if vθ = tθ
undefined otherwise
Examples(f(x)↼ x)(f(y)↼ g(y)) = f(f(y))↼ g(y)
(x ●c↼ (y ●y) ●x)((c ●c) ●x ↼ y ●x) = x ●c↼ c ●x
17
Logic Programming: Subsets of Flows
BalancedA flow f = t ↼ u is balanced if for any x ∈ Var(t) ∪ Var(u), alloccurrences of x in both t and u have the same height.
Examples●
y A1
y
●
A2
x y
A1
y
↼ ×
UnaryA flow is unary if it is built using only unary function symbols anda variable.
18
Logic Programming: Subsets of Flows
BalancedA flow f = t ↼ u is balanced if for any x ∈ Var(t) ∪ Var(u), alloccurrences of x in both t and u have the same height.
Examples●
x A1
y
●
A2
x y
A1
y
↼ ×
UnaryA flow is unary if it is built using only unary function symbols anda variable.
18
Logic Programming: Subsets of Flows
BalancedA flow f = t ↼ u is balanced if for any x ∈ Var(t) ∪ Var(u), alloccurrences of x in both t and u have the same height.
Examples●
c A1
y
●
A2
x y
A1
y
↼ ✓
UnaryA flow is unary if it is built using only unary function symbols anda variable.
18
Logic Programming: Subsets of Flows
BalancedA flow f = t ↼ u is balanced if for any x ∈ Var(t) ∪ Var(u), alloccurrences of x in both t and u have the same height.
Examples●
c A1
y
●
A2
x y
A1
y
↼ ✓
UnaryA flow is unary if it is built using only unary function symbols anda variable.
18
1 Introduction
2 Automata and ICC
3 Logic Programming
4 A New CorrespondenceNew ResultsNew Connexions
5 Perspectives
A New Correspondence: New Results
NL
2NFA(∗,0) Acyclicityin directed graph
Balanced Flows
Completeness Soundness
20
A New Correspondence: New Results
NL
2NFA(∗,0) Acyclicityin directed graph
Balanced Flows
Completeness Soundness
20
A New Correspondence: New Results
NL
2NFA(∗,0) Acyclicityin directed graph
Balanced Flows
Completeness Soundness
20
A New Correspondence: New Results
NL
2NFA(∗,0) Acyclicityin directed graph
Balanced Flows
Completeness Soundness
20
A New Correspondence: New Results
Ptime
2NFA(∗,1)
Balanced and UnaryFlows
Completeness
Soundness
21
A New Correspondence: New Results
Ptime
2NFA(∗,1)
Balanced and UnaryFlows
Completeness
Soundness
21
A New Correspondence: New Results
Ptime
2NFA(∗,1)
Balanced and UnaryFlows
Completeness
Soundness
21
A New Correspondence: New Connexions
Complexity
Automata
Programming Language
Linear Logic
Category Theory
22
1 Introduction
2 Automata and ICC
3 Logic Programming
4 A New Correspondence
5 PerspectivesLooking BackLooking Forward
Perspectives: Looking Back
Results of a series of works (Aubert, 2015; Aubert and Bagnol,2014; Aubert, Bagnol, and Seiller, 2016; Aubert and Seiller,2016a,b; Aubert et al., 2014) whose story remains to be told.
— From Proof Theory to simulations
— Algebraic techniques
— Pushdown Systems (PDS)?
— Functional complexity?
24
Perspectives: Looking Back
Results of a series of works (Aubert, 2015; Aubert and Bagnol,2014; Aubert, Bagnol, and Seiller, 2016; Aubert and Seiller,2016a,b; Aubert et al., 2014) whose story remains to be told.
— From Proof Theory to simulations
— Algebraic techniques
— Pushdown Systems (PDS)?
— Functional complexity?
24
Perspectives: Looking Back
Results of a series of works (Aubert, 2015; Aubert and Bagnol,2014; Aubert, Bagnol, and Seiller, 2016; Aubert and Seiller,2016a,b; Aubert et al., 2014) whose story remains to be told.
— From Proof Theory to simulations
— Algebraic techniques
— Pushdown Systems (PDS)?
— Functional complexity?
24
Perspectives: Looking Back
Results of a series of works (Aubert, 2015; Aubert and Bagnol,2014; Aubert, Bagnol, and Seiller, 2016; Aubert and Seiller,2016a,b; Aubert et al., 2014) whose story remains to be told.
— From Proof Theory to simulations
— Algebraic techniques
— Pushdown Systems (PDS)?
— Functional complexity?
24
Perspectives: Looking Forward
In increasing order of complexity:
— Write an intepreter for Automata (Chakraborty, Saxena, andKatti, 2011)
— The odd status of input in logic programming: can we havenon-deterministic data?
— Transfer results from automata to logic programming!
— Encode other variations of automata
— Go back to the type system
Thanks!
F=f
25
Perspectives: Looking Forward
In increasing order of complexity:
— Write an intepreter for Automata (Chakraborty, Saxena, andKatti, 2011)
— The odd status of input in logic programming: can we havenon-deterministic data?
— Transfer results from automata to logic programming!
— Encode other variations of automata
— Go back to the type system
Thanks!
F=f
25
Perspectives: Looking Forward
In increasing order of complexity:
— Write an intepreter for Automata (Chakraborty, Saxena, andKatti, 2011)
— The odd status of input in logic programming: can we havenon-deterministic data?
— Transfer results from automata to logic programming!
— Encode other variations of automata
— Go back to the type system
Thanks!
F=f
25
Perspectives: Looking Forward
In increasing order of complexity:
— Write an intepreter for Automata (Chakraborty, Saxena, andKatti, 2011)
— The odd status of input in logic programming: can we havenon-deterministic data?
— Transfer results from automata to logic programming!
— Encode other variations of automata
— Go back to the type system
Thanks!
F=f
25
Perspectives: Looking Forward
In increasing order of complexity:
— Write an intepreter for Automata (Chakraborty, Saxena, andKatti, 2011)
— The odd status of input in logic programming: can we havenon-deterministic data?
— Transfer results from automata to logic programming!
— Encode other variations of automata
— Go back to the type system
Thanks!
F=f
25
Perspectives: Looking Forward
In increasing order of complexity:
— Write an intepreter for Automata (Chakraborty, Saxena, andKatti, 2011)
— The odd status of input in logic programming: can we havenon-deterministic data?
— Transfer results from automata to logic programming!
— Encode other variations of automata
— Go back to the type system
Thanks!
F=f
25
Perspectives: References
Aubert, Clément (2015). An in-between "implicit" and "explicit"complexity: Automata. Research Report. 5 pp. arXiv:1502.00145 [cs.LO]. Communication at DICE 2015.
Aubert, Clément and Marc Bagnol (2014). “Unification andLogarithmic Space”. In: RTA-TLCA. Ed. by Gilles Dowek.Vol. 8650. LNCS. Springer, pp. 77–92. arXiv: 1402.4327[cs.LO].
Aubert, Clément, Marc Bagnol, and Thomas Seiller (2016).“Unary Resolution: Characterizing Ptime”. In: FoSSaCS.Ed. by Bart Jacobs and Christof Löding. Vol. 9634. LNCS.Springer, pp. 373–389.
Aubert, Clément and Thomas Seiller (2016a). “Characterizingco-NL by a group action”. In: MSCS 26 (04), pp. 606–638.
26
Perspectives: References
Aubert, Clément and Thomas Seiller (2016b). “LogarithmicSpace and Permutations”. In: Inf. Comput. 248. Ed. bySimona Ronchi Della Rocca and Virgile Mogbil. Developmenton Implicit Computational Complexity (DICE 2013), pp. 2–21.
Aubert, Clément, Marc Bagnol, Paolo Pistone, andThomas Seiller (2014). “Logic Programming and LogarithmicSpace”. In: APLAS. Ed. by Jacques Garrigue. Vol. 8858.LNCS. Springer, pp. 39–57. arXiv: 1406.2110 [cs.LO].
Baillot, Patrick and Marco Pedicini (2001). “ElementaryComplexity and Geometry of Interaction”. In: Fund. Inform.45.1–2, pp. 1–31.
27
Perspectives: References
Bellantoni, Stephen J. and Stephen Arthur Cook (1992). “A NewRecursion-Theoretic Characterization of the PolytimeFunctions (Extended Abstract)”. In: STOC. Ed. byS. Rao Kosaraju, Mike Fellows, Avi Wigderson, andJohn A. Ellis. ACM, pp. 283–93.
Buss, Samuel R. (1986). Bounded Arithmetic. Vol. 3. Studies inProof Theory. Lecture Notes. Bibliopolis.
Chakraborty, Pinaki, Prem Chandra Saxena, andChittaranjan Padmanabha Katti (2011). “Fifty years ofautomata simulation: a review”. In: Inroads 2.4, pp. 59–70.
28
Perspectives: References
Cobham, Alan (1965). “The intrinsic computational difficulty offunctions”. In: Logic, methodology and philosophy of science:Proceedings of the 1964 international congress held at theHebrew university of Jerusalem, Israel, from August 26 toSeptember 2, 1964. Ed. by Yehoshua Bar-Hillel. Studies inLogic and the foundations of mathematics. North-HollandPublishing Company, pp. 24–30.
Dal Lago, Ugo (2011). “A Short Introduction to ImplicitComputational Complexity”. In: ESSLLI. Ed. byNick Bezhanishvili and Valentin Goranko. Vol. 7388. LNCS.Springer, pp. 89–109.
Fagin, Ronald (1973). “Contributions to the Model Theory ofFinite Structures”. PhD thesis. University of California,Berkeley.
29
Perspectives: References
Férée, Hugo, Emmanuel Hainry, Mathieu Hoyrup, andRomain Péchoux (2015). “Characterizing polynomial timecomplexity of stream programs using interpretations”. In:Theoret. Comput. Sci. 585, pp. 41–54.
Gaboardi, Marco, Andreas Haeberlen, Justin Hsu,Arjun Narayan, and Benjamin C. Pierce (2013). “Lineardependent types for differential privacy”. In: POPL. Ed. byRoberto Giacobazzi and Radhia Cousot. ACM, pp. 357–370.
Girard, Jean-Yves (2013). “Three lightings of logic”. In: CSL.Ed. by Simona Ronchi Della Rocca. Vol. 23. LIPIcs. SchlossDagstuhl - Leibniz-Zentrum für Informatik, pp. 11–23.
Girard, Jean-Yves, Andre Scedrov, and Philip J. Scott (1992).“Bounded linear logic: a modular approach to polynomial-timecomputability”. In: Theoret. Comput. Sci. 97.1, pp. 1–66.
30
Perspectives: References
Ibarra, Oscar H. (1971). “Characterizations of Some Tape andTime Complexity Classes of Turing Machines in Terms ofMultihead and Auxiliary Stack Automata”. In: J. Comput. Syst.Sci. 5.2, pp. 88–117.
Leivant, Daniel (1993). “Stratified Functional Programs andComputational Complexity”. In: POPL. Ed. byMary S. Van Deusen and Bernard Lang. ACM Press,pp. 325–333.
31