SlideShare a Scribd company logo
1 of 32
Download to read offline
Partial Compilers and Dialectica Spaces

                                      Valeria de Paiva

                                      Rearden Commerce


                                      September, 2011




Valeria de Paiva (Rearden Commerce)        BACAT         September, 2011   1 / 32
The Compiler Forest Story

  This talk is based on: “The Compiler Forest", a preprint by Mihai Budiu,
  Joel Galenson and Gordon Plotkin, available from
  http://homepages.inf.ed.ac.uk/gdp/publications.

  This starts from LINQ a database programming language
  (wikipedia: LINQ is a Microsoft .NET Framework component that adds
  native data querying capabilities to .NET languages, released in 2007).

  the DryadLINQ compiler and its underlying distributed runtime system
  Dryad

  DryadLINQ translates programs written in the LINQ database programming
  language (Language INtegrated Query) into large-scale distributed
  computations that run on shared-nothing computer clusters.

Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   2 / 32
Basic Functionality of DryadLINQ

  Compiling programs for execution on a computer cluster.
  (1) translating a cluster-level computation into a set of interacting
  machine-level computations,
  (2) translating each machine-level computation into a set of CPU core-level
  computations, and
  (3) implementing each core-level computation in terms of machine code.

  The optimization strategies, program transformation rules, and runtime
  operations invoked by the compiler at the cluster, machine, and core levels
  are very different.

  Goal: Decompose the DryadLINQ compiler into a hierarchy of compilers
  that cooperate to implement a single computation.


Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   3 / 32
Structure of Paper



  Introduction
  Compilers and Partial Compilers
  Compilers as First-class objects
  Correctness
  Application to query processing
  Categorical Remarks
  Related work
  Conclusions




Valeria de Paiva (Rearden Commerce)   BACAT   September, 2011   4 / 32
Introduction

  The theoretical foundations established have immediate applications in
  practice. Building compilers using forests of partial compilers produces
  modular system architectures that are easily tested and extended.

  Revisit the original problem of compiling LINQ for computer clusters
  section 5. A reduced and stylized version of LINQ called µLINQ.

  This language is rich enough to express many interesting computations,
  including the popular MapReduce framework.

  Use formal machinery to argue about the correctness of the compilers.
  Many prior practical systems have been organized by using cooperating
  compilers. This formalism provides much-needed tools to allow reasoning
  about such systems rigorously.

Valeria de Paiva (Rearden Commerce)   BACAT                  September, 2011   5 / 32
Partial Compilers
  Terminology: A compiler takes queries as inputs and produces plans as
  outputs. A partial compiler reduces a query to a sub-query to be handled
  by a child compiler. Given a plan for the sub-query, the partial compiler
  then generates a plan for the entire query.




Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   6 / 32
Partial Compilers


  The motivating example:
  the DryadLINQ cluster-level partial compiler generates a plan to distribute
  the input data among many machines and then instructs each machine to
  perform a computation on its local data.

  To generate a plan for each machine the cluster-level compiler creates a
  machine-level sub-query, which is handed to a machine-level compiler.
  The machine-level compiler generates a machine-level plan.
  The global, cluster-level plan contains code to:
  (1) move data between machines and
  (2) to invoke machine-level plans on the local data.



Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   7 / 32
Partial Compilers in functions...
  Compilers C transform queries into plans so they are typed as:
  C : query → plan.
  To execute plans on specified input data, assume available an operation:
  Run : plan × data → data
  Model plans as computations: plan = data → data
  then Run is just function application Run(p, d) = p(d)
  The formalism models partial compilers as two separate pieces,
  interdependent, that perform query reduction and plan generation.

  Operationally, assume a simply typed lambda-calculus with products,
  function spaces and labelled sums, as well as lists and base types.
  Assume there are no side effects, types denote sets, and functions are usual
  set-theoretic ones. (If we discuss side-effects, then assume a call-by-value
  monadic semantics along the lines of Moggi’s computational lambda
  calculus.)

Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   8 / 32
Partial Compilers in functions...


  Picture was one parent, one child compiler, but can generalize.
  A parent partial compiler invoking the services of n child compilers is
  modeled using a polymorphic composition operation. Notation:
  P C n C1 , . . . , C n

  The partial compiler P C n applied to a query Q returns a set of n queries
  Qi , one for each Ci , and also a plan generation function G, which is
  applied to the plans generated by invoking each Ci on the corresponding
  Qi .The composition of the partial compiler with its child compilers has
  type query → plan:
  P C n C1 , ..., Cn =def λQ. let ((Q1 , ..., Qn ), G) be P C n (Q) in
   let P1 , ..., Pn be C1 (Q1 ), ..., Cn (Qn ) in G(P1 , ..., Pn )



Valeria de Paiva (Rearden Commerce)   BACAT                  September, 2011   9 / 32
Examples of Partial Compilers

  1. Sequential partial compiler
  2. Specialized partial compilers GPU+Core
  3. Multiple query and plan types P C of type
  query → (query × (plan → plan))
  4. Suppose we are dealing with computations on two different kinds of
  data: data and data .
  So plan = data → data and plan = data → data .
  We would like to compose a partial compiler
  P C : query → (query × (plan → plan)) with a compiler
  C : query → plan . If we have have suitable data conversion functions:
  c : data → data c : data → data and a suitable query translation
  function: T rans : query → query
  Then we can define the intermediate ‘conversion’ partial compiler
  P Cconvert : query → (query × (plan → plan))

Valeria de Paiva (Rearden Commerce)   BACAT              September, 2011   10 / 32
Compilers as first-class objects




  Discuss a set of powerful polymorphic operators, used to manipulate partial
  compilers

  “Structured Programming" manipulating compilers as values

  A theory of correctness for composite compilers emerges.
  Operations on compilers: tensor, star, conditionals, cases, functor, iteration.




Valeria de Paiva (Rearden Commerce)   BACAT                  September, 2011   11 / 32
Tensoring Compilers




  Given Ci : queryi → plani (for i = 1, 2) define their tensor
  C1 ⊗ C2 : (query1 ⊗ query2 ) → (plan1 ⊗ plan2 ) by:
  C1 ⊗ C2 (Q1 , Q2 ) = (C1 (Q1 ), C2 (Q2 )).
  Then, given
  P C 2 : query → ((query1 ⊗ query2 ) ⊗ ((plan1 ⊗ plan2 ) → plan)) say
  P C 2 << C, C2 >> is an abbreviation for P C 2 << C1 ⊗ C2 >>.




Valeria de Paiva (Rearden Commerce)   BACAT             September, 2011   12 / 32
(Other) Operations on Compilers

  Given a compiler C : query → plan one can define C : query → plan ,
  the star of C, by applying C pointwise to all elements in a list l of queries:
  C(l) = map(C; l).
  One compiler might be better suited to handle a given query than another,
  according to some criterion pred : query → bool.
  We can define a natural conditional operation to choose between two
  compilers
  CON D : (query → bool) × (query → plan)2 → (query → plan) by:
  CON D(p, (C1, C2)) = λQ. if p(Q) then C1 (Q) else C2 (Q)

  Can also define CASES, ITERATION and FUNCTORS.
  Traditional compilers usually include a sequence of optimizing passes. An optimizing pass is given by an optimizing

  function Opt : query → query that transforms the query (program) from a higher-level representation to a

  lower-level one. We model on optimization pass as the partial compiler P C = (Opt, idplan ).



Valeria de Paiva (Rearden Commerce)                     BACAT                             September, 2011       13 / 32
Correctness


  “The main practical benefit we expect to obtain from the use of partial
  compilers in building systems is decreased design complexity."

  One expects that a monolithic compiler applying a sequence of complex
  optimization passes to an internal representation should be less robust than
  a collection of partial compilers solving the same problem. Because the
  partial compilers communicate through well-defined interfaces and maintain
  independent representations of their sub-problems.

  This makes sense if the correctness of compilers and partial compilers can
  be treated modularly.



Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   14 / 32
Correctness


  Given a plan P and a query Q there is generally a natural correctness
  relation, stating that the plan is correct for the query, written as: P |= Q.

  Given a compiler C : query → plan and a correctness relation |= on plan
  and query, we say that the compiler C is correct w.r.t. to |=, if given a
  query Q, it returns a plan P such that P |= Q.

  Given a partial compiler P C : query → (query × (plan → plan)), and
  correctness relations |= on plan and query and |= on plan and query ,
  we say P C is correct w.r.t. |= and |= if, given a query Q, P C returns a
  query Q and a function G : plan → plan such that if G is given a plan
  P , where P |= Q , then G generates a plan P such that P |= Q.



Valeria de Paiva (Rearden Commerce)   BACAT                  September, 2011   15 / 32
Correctness

  Correctness is preserved by all the operations described.
  Correct compilers can be assembled from partial compilers or compilers
  that are only correct for some queries.
  Importantly, this restricted correctness can also be treated modularly.
  We define a natural Hoare-type logic to reason about correctness.

  “Patching” bugs in an existing compiler, without access to its
  implementation. Assume we have a predicate bug : query → bool
  describing the queries for which a complex optimizing compiler COP T
  generates an incorrect plan. Assume we have a very simple
  (non-optimizing) compiler CSIM P LE that always generates correct plans.
  Then the compiler IF bug THEN CSIM P LE ELSE COP T ’corrects’ the
  bugs of COP T .


Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   16 / 32
µLINQ?...
  LINQ (Language-INtegrated Queries, 2008) is a set of extensions to
  traditional .Net languages like C and Visual Basic. Essentially a functional,
  strongly-typed hybrid language, inspired by database language and
  comprehension calculi.

  The main datatype in LINQ computations are lists of values, called (data)
  collections. The core LINQ operators are named after SQL: Select (a.k.a.
  map), Where (a.k.a. Þlter), SelectMany, OrderBy, Aggregate (a.k.a. fold),
  GroupBy (the output of which is a collection of collections), and Join.

  LINQ queries are evaluated by LINQ providers. A provider is given by a
  term P : query × data → data for some ‘query’ and ‘data’. Given a
  compiler C : query → plan, and a Run : plan × data → data, we obtain
  a provider λQ : query, d : data.Run(C(Q), data)


Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   17 / 32
µLINQ?...

  µLINQ, a reduced version of LINQ with only three operators:
  SelectMany, Aggregate and GroupBy.
  Types of are basic types and T the type of collections (finite lists) of
  elements of type T . A query of type S → T denotes a function from S
  collections to T collections. µLINQ queries consist of sequences of operator
  applications.

  MapReduce can be expressed using µLINQ queries:
  MapReduce(map, reduceKey, reduce) is the same as
  SelectM any < S, T > (map);
  GroupBy < T, K > (reduceKey);
  Select < T , U > (reduce)
  map : S → T , reduceKey : T → K , and reduce : T → U
  where we assume suitable function expressions are available.

Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   18 / 32
Compiling µLINQ?...

  Single core:
  Basic building block for constructing µLINQ compilers. Start from three
  simple compilers, each of which can only generate a plan for a query
  consisting of just one of the operators:
  CSelectM any : F Exp → M P lan
  CAggregate : F Exp → M P lan and
  CGroupBy : F Exp → M P lan
  Use the CASES operation to combine these three elementary compilers into
  a compiler that can handle simple one-operator queries. use the generalized
  sequential partial compiler and the star operation to construct a compiler C
  µLINQ : MQuery MPlan for arbitrary µLINQ queries.
  If the above three simple compilers are correct, then, the combination is
  also correct.


Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   19 / 32
Compiling µLINQ?...


  multicore:
  The assumption is that each core can execute a plan independently. The
  most obvious way to take advantage of the available parallelism is to
  decompose the work to perform by splitting the input data into disjoint
  parts, performing the work in parallel on each of the parts using a separate
  core,and then merging the results.
  Compilation for distributed execution
  The same strategy employed by the multi-core compiler for parallelizing
  µLINQ query evaluations across cores can be used to parallelize further,
  across multiple machines, in a manner similar to the DryadLINQ compiler.

  Apparently it ALL works, but....



Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   20 / 32
Where is my category theory?
  Original Dialectica Categories (de Paiva, 1987) uses a category C, with
  finite limits, interpreting some type theory and builds the category Dial(C)
  with objects A = (U, X, α), where U, X are objects of C and α is a
  sub-object of U × X, that is a monic in Sub(U × X).
  BUT we can do it all simply over Sets! Then Dialectica category Dial has
  as objects triples, ie two sets and a relation between them. A map from
  A = (U, X, α) to B = (V, Y, β) is a pair of maps (f, F ), f : U → V ,
  F : U × Y → X such that α(u, F (u, y)) ≤ β(f (u), y)
  What if the query reduction and the plan construction bits of the partial
  compiler were our sets U and X? We were told that the partial compiler
  P C has type : query → (query × (plan → plan)) But since
  A → (B × C) ∼ (A → B) × (A → C), P C is equivalent to
                   =
  (query → query ) × (query → (plan → plan)) which is
  ∼ (query × plan → plan). Hence a partial compiler P C is exactly a
  =
  Dialectica map between A = (query, plan) and B = (query , plan ).
  Exactly?...
Valeria de Paiva (Rearden Commerce)   BACAT               September, 2011   21 / 32
Where is my category theory?


  I lied. Almost exactly. The relationship between the sets ‘query’ and ‘plan’
  didn’t play much of a more in the discussion of partial compilers, while it is
  essential for the logic connection.
  The predicate α is not symmetric: you can think of (U, X, α) as
  ∃u.∀x.α(u, x), a proposition in the image of the Dialectica interpretation.
  and the predicate plays a huge part on Dialectica categories, and its
  generalizations
  But the functionals f and F correspond to the Dialectica Interpretation of
  implication and that is the kernel of the interpretation.
  Back to Logic...




Valeria de Paiva (Rearden Commerce)   BACAT                  September, 2011   22 / 32
Functional Interpretations and Gödel’s Dialectica

        Starting with Gödel’s Dialectica interpretation(1958) a series of
        "translation functions" between theories
        Avigad and Feferman on the Handbook of Proof Theory:
                 This approach usually follows Gödel’s original example: first,
                 one reduces a classical theory C to a variant I based on
                 intuitionistic logic; then one reduces the theory I to a
                 quantifier-free functional theory F.

        Examples of functional interpretations:
            Kleene’s realizability
            Kreisel’s modified realizability
            Kreisel’s No-CounterExample interpretation
            Dialectica interpretation
            Diller-Nahm interpretation, etc...

Valeria de Paiva (Rearden Commerce)    BACAT                 September, 2011   23 / 32
Gödel’s Dialectica Interpretation
  For each formula A of HA we associate a formula of the form
  AD = ∃u∀xAD (u, x) (where AD is a quantifier-free formula of Gödel’s
  system T) inductively as follows: when Aat is an atomic formula, then its
  interpretation is itself.
  Assume we have already defined AD = ∃u∀x.AD (u, x) and
  B D = ∃v∀y.BD (v, y).
  We then define:
        (A ∧ B)D = ∃u, v∀x, y.(AD ∧ BD )
        (A → B)D = ∃f : U → V, F : U × X → Y, ∀u, y.
        ( AD (u, F (u, y)) → BD (f u; y))
        (∀zA)D (z) = ∃f : Z → U ∀z, x.AD (z, f (z), x)
        (∃zA)D (z) = ∃z, u∀x.AD (z, u, x)
  The intuition here is that if u realizes ∃u∀x.AD (u, x) then f (u) realizes
  ∃v∀y.BD (v, y) and at the same time, if y is a counterexample to
  ∃v∀y.BD (v, y), then F (u, y) is a counterexample to ∀x.AD (u, x).
Valeria de Paiva (Rearden Commerce)   BACAT                  September, 2011   24 / 32
Where is my category theory?




Valeria de Paiva (Rearden Commerce)   BACAT   September, 2011   25 / 32
Where is my category theory?




Valeria de Paiva (Rearden Commerce)   BACAT   September, 2011   26 / 32
More Original Dialectica Categories


  My thesis has four chapters, four main definitions and four main theorems.
  The first two chapters are about the “original" dialectica categories.
  Theorem (V de Paiva, 1987)
  If C is a ccc with stable, disjoint coproducts, then Dial(C) has products,
  tensor products, units and a linear function space (1, ×, ⊗, I, →) and
  Dial(C) is symmetric monoidal closed.

  This means that Dial(C) models Intuitionistic Linear Logic (ILL)
  without modalities. How to get modalities? Need to define a special
  comonad and lots of work to prove theorem 2...




Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   27 / 32
Original Dialectica Categories

  !A must satisfy !A →!A⊗!A, !A ⊗ B →!A, !A → A and !A →!!A,
  together with several equations relating them.
  The point is to define a comonad such that its coalgebras are commutative
  comonoids and the coalgebra and the comonoid structure interact nicely.
  Theorem (V de Paiva, 1987)
  Given C a cartesian closed category with free monoids (satisfying certain
  conditions), we can define a comonad T on Dial(C) such that its Kleisli
  category Dial(C)T is cartesian closed.

  Define T by saying A = (U, X, α) goes to (U, X ∗ , α∗ ) where X ∗ is the free
  commutative monoid on X and α∗ is the multiset version of α.
  Loads of calculations prove that the linear logic modalitiy ! is well-defined
  and we obtain a full model of ILL and IL, a posteriori of CLL.
  Construction generalized in many ways, cf. dePaiva, TAC, 2006.

Valeria de Paiva (Rearden Commerce)   BACAT                September, 2011   28 / 32
What is the point of (these) Dialectica categories?


  First, the construction ends up as a model of Linear Logic, instead of
  constructive logic.This allows us to see where the assumptions in Godel’s
  argument are used (Dialectica still a bit mysterious...)
  It justifies linear logic in terms of a more traditional logic tool and
  conversely explains the more traditional work in terms of a ‘modern’ (linear,
  resource conscious) decomposition of concerns.
  Theorems(87/89): Dialectica categories provide models of linear logic as
  well as an internal representation of the dialectica interpretation. Modeling
  the exponential ! is hard, first model to do it. Still (one of) the best ones.




Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   29 / 32
Dialectica categories: 20 years later...


  It is pretty: produces models of Intuitionistic and clasical linear logic and
  special connectives that allow us to get back to usual logic.
  Extended it in a number of directions (a robust proof can be pushed in
  many ways): used in CS as a model of Petri nets (more than 2 phds),
  it has a non-commutative version for Lambek calculus (linguistics),
  it has been used as a model of state (with Correa and Hausler)
  and even of cardinalities of the continuum (Blass, Votjas(independently),
  Morgan&daSilva).
  Also used for generic models (with Schalk04) of Linear Logic, for Dialectica
  interpretations of Linear Logic and Games (Shirahata and Oliveira) and
  fibrational versions (B. Biering and P. Hofstra).



Valeria de Paiva (Rearden Commerce)   BACAT                 September, 2011   30 / 32
Conclusions


  Working in interdisciplinary areas is hard, but rewarding
  The frontier between logic, computing, linguistics and categories is a fun
  place to be
  Mathematics teaches you a way of thinking, more than specific theorems
  Fall in love with your ideas and enjoy talking to many about them...
  (ok these conclusions were to promote mathematics for young women at Sonoma State, so maybe you don’t need

  them...)



  Thanks Vlad for keeping BACAT alive, Mike for organizing today, Mihai,
  Joel and Gordon for a great paper and all present for a fun discussion!




Valeria de Paiva (Rearden Commerce)                 BACAT                           September, 2011     31 / 32
References

  Categorical Semantics of Linear Logic for All, Manuscript.
  Dialectica and Chu constructions: Cousins?Theory and Applications of
  Categories, Vol. 17, 2006, No. 7, pp 127-152.
  A Dialectica Model of State. (with Correa and Haeusler). In CATS’96,
  Melbourne, Australia, Jan 1996.
  Full Intuitionistic Linear Logic (extended abstract). (with Martin Hyland).
  Annals of Pure and Applied Logic, 64(3), pp.273-291, 1993.
  Thesis TR: The Dialectica Categories
  http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-213.html

  A Dialectica-like Model of Linear Logic.In Proceedings of CTCS,
  Manchester, UK, September 1989. LNCS 389
  The Dialectica Categories. In Proc of Categories in Computer Science and
  Logic, Boulder, CO, 1987. Contemporary Mathematics, vol 92, American
  Mathematical Society, 1989
  all available from http://www.cs.bham.ac.uk/~vdp/publications/papers.html


Valeria de Paiva (Rearden Commerce)                  BACAT                    September, 2011   32 / 32

More Related Content

What's hot

educational course/tutorialoutlet.com
educational course/tutorialoutlet.comeducational course/tutorialoutlet.com
educational course/tutorialoutlet.comjorge0043
 
IRJET- Latin Square Computation of Order-3 using Open CL
IRJET- Latin Square Computation of Order-3 using Open CLIRJET- Latin Square Computation of Order-3 using Open CL
IRJET- Latin Square Computation of Order-3 using Open CLIRJET Journal
 
Observations on dag scheduling and dynamic load-balancing using genetic algor...
Observations on dag scheduling and dynamic load-balancing using genetic algor...Observations on dag scheduling and dynamic load-balancing using genetic algor...
Observations on dag scheduling and dynamic load-balancing using genetic algor...Rahul Jain
 
Optimized Reversible Vedic Multipliers for High Speed Low Power Operations
Optimized Reversible Vedic Multipliers for High Speed Low Power OperationsOptimized Reversible Vedic Multipliers for High Speed Low Power Operations
Optimized Reversible Vedic Multipliers for High Speed Low Power Operationsijsrd.com
 
KARNAUGH MAP using OpenGL (KMAP)
KARNAUGH MAP using OpenGL (KMAP)KARNAUGH MAP using OpenGL (KMAP)
KARNAUGH MAP using OpenGL (KMAP)Sagar Uday Kumar
 
Master thesis Francesco Serafin
Master thesis Francesco SerafinMaster thesis Francesco Serafin
Master thesis Francesco SerafinRiccardo Rigon
 
Strategies for Rule-Based Program Transformation
Strategies for Rule-Based Program TransformationStrategies for Rule-Based Program Transformation
Strategies for Rule-Based Program TransformationEelco Visser
 
G-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionG-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionMengmeng Xu
 
A new efficient fpga design of residue to-binary converter
A new efficient fpga design of residue to-binary converterA new efficient fpga design of residue to-binary converter
A new efficient fpga design of residue to-binary converterVLSICS Design
 
Evolutionary Multi-Goal Workflow Progress in Shade
Evolutionary  Multi-Goal Workflow Progress in ShadeEvolutionary  Multi-Goal Workflow Progress in Shade
Evolutionary Multi-Goal Workflow Progress in ShadeIRJET Journal
 
Halide - 1
Halide - 1Halide - 1
Halide - 1Kobe Yu
 
CAPE Computer Science Unit 1 Paper 1 - Practice Paper
CAPE Computer Science Unit 1 Paper 1 - Practice PaperCAPE Computer Science Unit 1 Paper 1 - Practice Paper
CAPE Computer Science Unit 1 Paper 1 - Practice PaperAlex Stewart
 
OPTIMIZED REVERSIBLE VEDIC MULTIPLIERS
OPTIMIZED REVERSIBLE VEDIC MULTIPLIERSOPTIMIZED REVERSIBLE VEDIC MULTIPLIERS
OPTIMIZED REVERSIBLE VEDIC MULTIPLIERSUday Prakash
 
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and PerformanceChapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performanceinside-BigData.com
 
High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...
High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...
High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...IOSR Journals
 

What's hot (18)

educational course/tutorialoutlet.com
educational course/tutorialoutlet.comeducational course/tutorialoutlet.com
educational course/tutorialoutlet.com
 
IRJET- Latin Square Computation of Order-3 using Open CL
IRJET- Latin Square Computation of Order-3 using Open CLIRJET- Latin Square Computation of Order-3 using Open CL
IRJET- Latin Square Computation of Order-3 using Open CL
 
Observations on dag scheduling and dynamic load-balancing using genetic algor...
Observations on dag scheduling and dynamic load-balancing using genetic algor...Observations on dag scheduling and dynamic load-balancing using genetic algor...
Observations on dag scheduling and dynamic load-balancing using genetic algor...
 
Optimized Reversible Vedic Multipliers for High Speed Low Power Operations
Optimized Reversible Vedic Multipliers for High Speed Low Power OperationsOptimized Reversible Vedic Multipliers for High Speed Low Power Operations
Optimized Reversible Vedic Multipliers for High Speed Low Power Operations
 
3. cs8451 daa anna univ question bank unit 3
3. cs8451 daa anna univ question bank unit 33. cs8451 daa anna univ question bank unit 3
3. cs8451 daa anna univ question bank unit 3
 
KARNAUGH MAP using OpenGL (KMAP)
KARNAUGH MAP using OpenGL (KMAP)KARNAUGH MAP using OpenGL (KMAP)
KARNAUGH MAP using OpenGL (KMAP)
 
Master thesis Francesco Serafin
Master thesis Francesco SerafinMaster thesis Francesco Serafin
Master thesis Francesco Serafin
 
Strategies for Rule-Based Program Transformation
Strategies for Rule-Based Program TransformationStrategies for Rule-Based Program Transformation
Strategies for Rule-Based Program Transformation
 
Flow Solver: HiFUN
Flow Solver: HiFUNFlow Solver: HiFUN
Flow Solver: HiFUN
 
G-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action DetectionG-TAD: Sub-Graph Localization for Temporal Action Detection
G-TAD: Sub-Graph Localization for Temporal Action Detection
 
Lec11 rate distortion optimization
Lec11 rate distortion optimizationLec11 rate distortion optimization
Lec11 rate distortion optimization
 
A new efficient fpga design of residue to-binary converter
A new efficient fpga design of residue to-binary converterA new efficient fpga design of residue to-binary converter
A new efficient fpga design of residue to-binary converter
 
Evolutionary Multi-Goal Workflow Progress in Shade
Evolutionary  Multi-Goal Workflow Progress in ShadeEvolutionary  Multi-Goal Workflow Progress in Shade
Evolutionary Multi-Goal Workflow Progress in Shade
 
Halide - 1
Halide - 1Halide - 1
Halide - 1
 
CAPE Computer Science Unit 1 Paper 1 - Practice Paper
CAPE Computer Science Unit 1 Paper 1 - Practice PaperCAPE Computer Science Unit 1 Paper 1 - Practice Paper
CAPE Computer Science Unit 1 Paper 1 - Practice Paper
 
OPTIMIZED REVERSIBLE VEDIC MULTIPLIERS
OPTIMIZED REVERSIBLE VEDIC MULTIPLIERSOPTIMIZED REVERSIBLE VEDIC MULTIPLIERS
OPTIMIZED REVERSIBLE VEDIC MULTIPLIERS
 
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and PerformanceChapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
 
High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...
High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...
High Speed and Time Efficient 1-D DWT on Xilinx Virtex4 DWT Using 9/7 Filter ...
 

Viewers also liked

Intuitionistic Modal Logic: fifteen years later
Intuitionistic Modal Logic: fifteen years laterIntuitionistic Modal Logic: fifteen years later
Intuitionistic Modal Logic: fifteen years laterValeria de Paiva
 
Contexts 4 quantification (CommonSense2013)
Contexts 4 quantification (CommonSense2013)Contexts 4 quantification (CommonSense2013)
Contexts 4 quantification (CommonSense2013)Valeria de Paiva
 
Lean Logic for Lean Times: Entailment and Contradiction Revisited
Lean Logic for Lean Times: Entailment and Contradiction RevisitedLean Logic for Lean Times: Entailment and Contradiction Revisited
Lean Logic for Lean Times: Entailment and Contradiction RevisitedValeria de Paiva
 
Portuguese Linguistic Tools: What, Why and How
Portuguese Linguistic Tools: What, Why and HowPortuguese Linguistic Tools: What, Why and How
Portuguese Linguistic Tools: What, Why and HowValeria de Paiva
 
Dialectica Categories Surprising Application: mapping cardinal invariants
Dialectica Categories Surprising Application: mapping cardinal invariantsDialectica Categories Surprising Application: mapping cardinal invariants
Dialectica Categories Surprising Application: mapping cardinal invariantsValeria de Paiva
 
Lean Logic for Lean Times: Varieties of Natural Logic
Lean Logic for Lean Times: Varieties of Natural LogicLean Logic for Lean Times: Varieties of Natural Logic
Lean Logic for Lean Times: Varieties of Natural LogicValeria de Paiva
 
Seeing is Correcting:Linked Open Data for Portuguese
Seeing is Correcting:Linked Open Data for PortugueseSeeing is Correcting:Linked Open Data for Portuguese
Seeing is Correcting:Linked Open Data for PortugueseValeria de Paiva
 
Logics and Ontologies for Portuguese Understanding
Logics and Ontologies for Portuguese UnderstandingLogics and Ontologies for Portuguese Understanding
Logics and Ontologies for Portuguese UnderstandingValeria de Paiva
 

Viewers also liked (9)

Intuitionistic Modal Logic: fifteen years later
Intuitionistic Modal Logic: fifteen years laterIntuitionistic Modal Logic: fifteen years later
Intuitionistic Modal Logic: fifteen years later
 
Contexts 4 quantification (CommonSense2013)
Contexts 4 quantification (CommonSense2013)Contexts 4 quantification (CommonSense2013)
Contexts 4 quantification (CommonSense2013)
 
Lean Logic for Lean Times: Entailment and Contradiction Revisited
Lean Logic for Lean Times: Entailment and Contradiction RevisitedLean Logic for Lean Times: Entailment and Contradiction Revisited
Lean Logic for Lean Times: Entailment and Contradiction Revisited
 
Modal Type Theory
Modal Type TheoryModal Type Theory
Modal Type Theory
 
Portuguese Linguistic Tools: What, Why and How
Portuguese Linguistic Tools: What, Why and HowPortuguese Linguistic Tools: What, Why and How
Portuguese Linguistic Tools: What, Why and How
 
Dialectica Categories Surprising Application: mapping cardinal invariants
Dialectica Categories Surprising Application: mapping cardinal invariantsDialectica Categories Surprising Application: mapping cardinal invariants
Dialectica Categories Surprising Application: mapping cardinal invariants
 
Lean Logic for Lean Times: Varieties of Natural Logic
Lean Logic for Lean Times: Varieties of Natural LogicLean Logic for Lean Times: Varieties of Natural Logic
Lean Logic for Lean Times: Varieties of Natural Logic
 
Seeing is Correcting:Linked Open Data for Portuguese
Seeing is Correcting:Linked Open Data for PortugueseSeeing is Correcting:Linked Open Data for Portuguese
Seeing is Correcting:Linked Open Data for Portuguese
 
Logics and Ontologies for Portuguese Understanding
Logics and Ontologies for Portuguese UnderstandingLogics and Ontologies for Portuguese Understanding
Logics and Ontologies for Portuguese Understanding
 

Similar to Partial Compilers and Dialectica Spaces

Compiler gate question key
Compiler gate question keyCompiler gate question key
Compiler gate question keyArthyR3
 
Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?Eelco Visser
 
On Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingOn Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingRoberto Casadei
 
Open cl programming using python syntax
Open cl programming using python syntaxOpen cl programming using python syntax
Open cl programming using python syntaxcsandit
 
OpenCL programming using Python syntax
OpenCL programming using Python syntax OpenCL programming using Python syntax
OpenCL programming using Python syntax cscpconf
 
High quality implementation for
High quality implementation forHigh quality implementation for
High quality implementation forijseajournal
 
Embarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel ProblemsEmbarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel ProblemsDilum Bandara
 
Cling the llvm based interpreter
Cling the llvm based interpreterCling the llvm based interpreter
Cling the llvm based interpreterRoberto Nogueira
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELJoel Falcou
 
Reengineering and Reuse of Legacy Software
Reengineering and Reuse of Legacy SoftwareReengineering and Reuse of Legacy Software
Reengineering and Reuse of Legacy SoftwareTeodoro Cipresso
 
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowHow to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowLucas Arruda
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...tdc-globalcode
 
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to Practice
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to PracticeWorkflow Allocations and Scheduling on IaaS Platforms, from Theory to Practice
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to PracticeFrederic Desprez
 
C notes by m v b reddy(gitam)imp notes all units notes 5 unit order
C notes by m v b  reddy(gitam)imp  notes  all units notes  5 unit orderC notes by m v b  reddy(gitam)imp  notes  all units notes  5 unit order
C notes by m v b reddy(gitam)imp notes all units notes 5 unit orderMalikireddy Bramhananda Reddy
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field CalculusRoberto Casadei
 

Similar to Partial Compilers and Dialectica Spaces (20)

Compiler gate question key
Compiler gate question keyCompiler gate question key
Compiler gate question key
 
Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?Declare Your Language: What is a Compiler?
Declare Your Language: What is a Compiler?
 
On Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate ProgrammingOn Context-Orientation in Aggregate Programming
On Context-Orientation in Aggregate Programming
 
Open cl programming using python syntax
Open cl programming using python syntaxOpen cl programming using python syntax
Open cl programming using python syntax
 
OpenCL programming using Python syntax
OpenCL programming using Python syntax OpenCL programming using Python syntax
OpenCL programming using Python syntax
 
High quality implementation for
High quality implementation forHigh quality implementation for
High quality implementation for
 
EEDC Programming Models
EEDC Programming ModelsEEDC Programming Models
EEDC Programming Models
 
Chapter 1.ppt
Chapter 1.pptChapter 1.ppt
Chapter 1.ppt
 
2621008 - C++ 1
2621008 -  C++ 12621008 -  C++ 1
2621008 - C++ 1
 
BDS_QA.pdf
BDS_QA.pdfBDS_QA.pdf
BDS_QA.pdf
 
Embarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel ProblemsEmbarrassingly/Delightfully Parallel Problems
Embarrassingly/Delightfully Parallel Problems
 
Cling the llvm based interpreter
Cling the llvm based interpreterCling the llvm based interpreter
Cling the llvm based interpreter
 
Automatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSELAutomatic Task-based Code Generation for High Performance DSEL
Automatic Task-based Code Generation for High Performance DSEL
 
Reengineering and Reuse of Legacy Software
Reengineering and Reuse of Legacy SoftwareReengineering and Reuse of Legacy Software
Reengineering and Reuse of Legacy Software
 
The google MapReduce
The google MapReduceThe google MapReduce
The google MapReduce
 
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud DataflowHow to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
How to build an ETL pipeline with Apache Beam on Google Cloud Dataflow
 
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
TDC2017 | São Paulo - Trilha BigData How we figured out we had a SRE team at ...
 
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to Practice
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to PracticeWorkflow Allocations and Scheduling on IaaS Platforms, from Theory to Practice
Workflow Allocations and Scheduling on IaaS Platforms, from Theory to Practice
 
C notes by m v b reddy(gitam)imp notes all units notes 5 unit order
C notes by m v b  reddy(gitam)imp  notes  all units notes  5 unit orderC notes by m v b  reddy(gitam)imp  notes  all units notes  5 unit order
C notes by m v b reddy(gitam)imp notes all units notes 5 unit order
 
Aggregate Processes in Field Calculus
Aggregate Processes in Field CalculusAggregate Processes in Field Calculus
Aggregate Processes in Field Calculus
 

More from Valeria de Paiva

Dialectica Categorical Constructions
Dialectica Categorical ConstructionsDialectica Categorical Constructions
Dialectica Categorical ConstructionsValeria de Paiva
 
Logic & Representation 2021
Logic & Representation 2021Logic & Representation 2021
Logic & Representation 2021Valeria de Paiva
 
Constructive Modal and Linear Logics
Constructive Modal and Linear LogicsConstructive Modal and Linear Logics
Constructive Modal and Linear LogicsValeria de Paiva
 
Dialectica Categories Revisited
Dialectica Categories RevisitedDialectica Categories Revisited
Dialectica Categories RevisitedValeria de Paiva
 
Networked Mathematics: NLP tools for Better Science
Networked Mathematics: NLP tools for Better ScienceNetworked Mathematics: NLP tools for Better Science
Networked Mathematics: NLP tools for Better ScienceValeria de Paiva
 
Going Without: a modality and its role
Going Without: a modality and its roleGoing Without: a modality and its role
Going Without: a modality and its roleValeria de Paiva
 
Problemas de Kolmogorov-Veloso
Problemas de Kolmogorov-VelosoProblemas de Kolmogorov-Veloso
Problemas de Kolmogorov-VelosoValeria de Paiva
 
Natural Language Inference: for Humans and Machines
Natural Language Inference: for Humans and MachinesNatural Language Inference: for Humans and Machines
Natural Language Inference: for Humans and MachinesValeria de Paiva
 
The importance of Being Erneast: Open datasets in Portuguese
The importance of Being Erneast: Open datasets in PortugueseThe importance of Being Erneast: Open datasets in Portuguese
The importance of Being Erneast: Open datasets in PortugueseValeria de Paiva
 
Negation in the Ecumenical System
Negation in the Ecumenical SystemNegation in the Ecumenical System
Negation in the Ecumenical SystemValeria de Paiva
 
Constructive Modal and Linear Logics
Constructive Modal and Linear LogicsConstructive Modal and Linear Logics
Constructive Modal and Linear LogicsValeria de Paiva
 
Semantics and Reasoning for NLP, AI and ACT
Semantics and Reasoning for NLP, AI and ACTSemantics and Reasoning for NLP, AI and ACT
Semantics and Reasoning for NLP, AI and ACTValeria de Paiva
 
Categorical Explicit Substitutions
Categorical Explicit SubstitutionsCategorical Explicit Substitutions
Categorical Explicit SubstitutionsValeria de Paiva
 
Logic and Probabilistic Methods for Dialog
Logic and Probabilistic Methods for DialogLogic and Probabilistic Methods for Dialog
Logic and Probabilistic Methods for DialogValeria de Paiva
 
Intuitive Semantics for Full Intuitionistic Linear Logic (2014)
Intuitive Semantics for Full Intuitionistic Linear Logic (2014)Intuitive Semantics for Full Intuitionistic Linear Logic (2014)
Intuitive Semantics for Full Intuitionistic Linear Logic (2014)Valeria de Paiva
 

More from Valeria de Paiva (20)

Dialectica Comonoids
Dialectica ComonoidsDialectica Comonoids
Dialectica Comonoids
 
Dialectica Categorical Constructions
Dialectica Categorical ConstructionsDialectica Categorical Constructions
Dialectica Categorical Constructions
 
Logic & Representation 2021
Logic & Representation 2021Logic & Representation 2021
Logic & Representation 2021
 
Constructive Modal and Linear Logics
Constructive Modal and Linear LogicsConstructive Modal and Linear Logics
Constructive Modal and Linear Logics
 
Dialectica Categories Revisited
Dialectica Categories RevisitedDialectica Categories Revisited
Dialectica Categories Revisited
 
PLN para Tod@s
PLN para Tod@sPLN para Tod@s
PLN para Tod@s
 
Networked Mathematics: NLP tools for Better Science
Networked Mathematics: NLP tools for Better ScienceNetworked Mathematics: NLP tools for Better Science
Networked Mathematics: NLP tools for Better Science
 
Going Without: a modality and its role
Going Without: a modality and its roleGoing Without: a modality and its role
Going Without: a modality and its role
 
Problemas de Kolmogorov-Veloso
Problemas de Kolmogorov-VelosoProblemas de Kolmogorov-Veloso
Problemas de Kolmogorov-Veloso
 
Natural Language Inference: for Humans and Machines
Natural Language Inference: for Humans and MachinesNatural Language Inference: for Humans and Machines
Natural Language Inference: for Humans and Machines
 
Dialectica Petri Nets
Dialectica Petri NetsDialectica Petri Nets
Dialectica Petri Nets
 
The importance of Being Erneast: Open datasets in Portuguese
The importance of Being Erneast: Open datasets in PortugueseThe importance of Being Erneast: Open datasets in Portuguese
The importance of Being Erneast: Open datasets in Portuguese
 
Negation in the Ecumenical System
Negation in the Ecumenical SystemNegation in the Ecumenical System
Negation in the Ecumenical System
 
Constructive Modal and Linear Logics
Constructive Modal and Linear LogicsConstructive Modal and Linear Logics
Constructive Modal and Linear Logics
 
Semantics and Reasoning for NLP, AI and ACT
Semantics and Reasoning for NLP, AI and ACTSemantics and Reasoning for NLP, AI and ACT
Semantics and Reasoning for NLP, AI and ACT
 
NLCS 2013 opening slides
NLCS 2013 opening slidesNLCS 2013 opening slides
NLCS 2013 opening slides
 
Dialectica Comonads
Dialectica ComonadsDialectica Comonads
Dialectica Comonads
 
Categorical Explicit Substitutions
Categorical Explicit SubstitutionsCategorical Explicit Substitutions
Categorical Explicit Substitutions
 
Logic and Probabilistic Methods for Dialog
Logic and Probabilistic Methods for DialogLogic and Probabilistic Methods for Dialog
Logic and Probabilistic Methods for Dialog
 
Intuitive Semantics for Full Intuitionistic Linear Logic (2014)
Intuitive Semantics for Full Intuitionistic Linear Logic (2014)Intuitive Semantics for Full Intuitionistic Linear Logic (2014)
Intuitive Semantics for Full Intuitionistic Linear Logic (2014)
 

Recently uploaded

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 

Recently uploaded (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Partial Compilers and Dialectica Spaces

  • 1. Partial Compilers and Dialectica Spaces Valeria de Paiva Rearden Commerce September, 2011 Valeria de Paiva (Rearden Commerce) BACAT September, 2011 1 / 32
  • 2. The Compiler Forest Story This talk is based on: “The Compiler Forest", a preprint by Mihai Budiu, Joel Galenson and Gordon Plotkin, available from http://homepages.inf.ed.ac.uk/gdp/publications. This starts from LINQ a database programming language (wikipedia: LINQ is a Microsoft .NET Framework component that adds native data querying capabilities to .NET languages, released in 2007). the DryadLINQ compiler and its underlying distributed runtime system Dryad DryadLINQ translates programs written in the LINQ database programming language (Language INtegrated Query) into large-scale distributed computations that run on shared-nothing computer clusters. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 2 / 32
  • 3. Basic Functionality of DryadLINQ Compiling programs for execution on a computer cluster. (1) translating a cluster-level computation into a set of interacting machine-level computations, (2) translating each machine-level computation into a set of CPU core-level computations, and (3) implementing each core-level computation in terms of machine code. The optimization strategies, program transformation rules, and runtime operations invoked by the compiler at the cluster, machine, and core levels are very different. Goal: Decompose the DryadLINQ compiler into a hierarchy of compilers that cooperate to implement a single computation. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 3 / 32
  • 4. Structure of Paper Introduction Compilers and Partial Compilers Compilers as First-class objects Correctness Application to query processing Categorical Remarks Related work Conclusions Valeria de Paiva (Rearden Commerce) BACAT September, 2011 4 / 32
  • 5. Introduction The theoretical foundations established have immediate applications in practice. Building compilers using forests of partial compilers produces modular system architectures that are easily tested and extended. Revisit the original problem of compiling LINQ for computer clusters section 5. A reduced and stylized version of LINQ called µLINQ. This language is rich enough to express many interesting computations, including the popular MapReduce framework. Use formal machinery to argue about the correctness of the compilers. Many prior practical systems have been organized by using cooperating compilers. This formalism provides much-needed tools to allow reasoning about such systems rigorously. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 5 / 32
  • 6. Partial Compilers Terminology: A compiler takes queries as inputs and produces plans as outputs. A partial compiler reduces a query to a sub-query to be handled by a child compiler. Given a plan for the sub-query, the partial compiler then generates a plan for the entire query. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 6 / 32
  • 7. Partial Compilers The motivating example: the DryadLINQ cluster-level partial compiler generates a plan to distribute the input data among many machines and then instructs each machine to perform a computation on its local data. To generate a plan for each machine the cluster-level compiler creates a machine-level sub-query, which is handed to a machine-level compiler. The machine-level compiler generates a machine-level plan. The global, cluster-level plan contains code to: (1) move data between machines and (2) to invoke machine-level plans on the local data. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 7 / 32
  • 8. Partial Compilers in functions... Compilers C transform queries into plans so they are typed as: C : query → plan. To execute plans on specified input data, assume available an operation: Run : plan × data → data Model plans as computations: plan = data → data then Run is just function application Run(p, d) = p(d) The formalism models partial compilers as two separate pieces, interdependent, that perform query reduction and plan generation. Operationally, assume a simply typed lambda-calculus with products, function spaces and labelled sums, as well as lists and base types. Assume there are no side effects, types denote sets, and functions are usual set-theoretic ones. (If we discuss side-effects, then assume a call-by-value monadic semantics along the lines of Moggi’s computational lambda calculus.) Valeria de Paiva (Rearden Commerce) BACAT September, 2011 8 / 32
  • 9. Partial Compilers in functions... Picture was one parent, one child compiler, but can generalize. A parent partial compiler invoking the services of n child compilers is modeled using a polymorphic composition operation. Notation: P C n C1 , . . . , C n The partial compiler P C n applied to a query Q returns a set of n queries Qi , one for each Ci , and also a plan generation function G, which is applied to the plans generated by invoking each Ci on the corresponding Qi .The composition of the partial compiler with its child compilers has type query → plan: P C n C1 , ..., Cn =def λQ. let ((Q1 , ..., Qn ), G) be P C n (Q) in let P1 , ..., Pn be C1 (Q1 ), ..., Cn (Qn ) in G(P1 , ..., Pn ) Valeria de Paiva (Rearden Commerce) BACAT September, 2011 9 / 32
  • 10. Examples of Partial Compilers 1. Sequential partial compiler 2. Specialized partial compilers GPU+Core 3. Multiple query and plan types P C of type query → (query × (plan → plan)) 4. Suppose we are dealing with computations on two different kinds of data: data and data . So plan = data → data and plan = data → data . We would like to compose a partial compiler P C : query → (query × (plan → plan)) with a compiler C : query → plan . If we have have suitable data conversion functions: c : data → data c : data → data and a suitable query translation function: T rans : query → query Then we can define the intermediate ‘conversion’ partial compiler P Cconvert : query → (query × (plan → plan)) Valeria de Paiva (Rearden Commerce) BACAT September, 2011 10 / 32
  • 11. Compilers as first-class objects Discuss a set of powerful polymorphic operators, used to manipulate partial compilers “Structured Programming" manipulating compilers as values A theory of correctness for composite compilers emerges. Operations on compilers: tensor, star, conditionals, cases, functor, iteration. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 11 / 32
  • 12. Tensoring Compilers Given Ci : queryi → plani (for i = 1, 2) define their tensor C1 ⊗ C2 : (query1 ⊗ query2 ) → (plan1 ⊗ plan2 ) by: C1 ⊗ C2 (Q1 , Q2 ) = (C1 (Q1 ), C2 (Q2 )). Then, given P C 2 : query → ((query1 ⊗ query2 ) ⊗ ((plan1 ⊗ plan2 ) → plan)) say P C 2 << C, C2 >> is an abbreviation for P C 2 << C1 ⊗ C2 >>. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 12 / 32
  • 13. (Other) Operations on Compilers Given a compiler C : query → plan one can define C : query → plan , the star of C, by applying C pointwise to all elements in a list l of queries: C(l) = map(C; l). One compiler might be better suited to handle a given query than another, according to some criterion pred : query → bool. We can define a natural conditional operation to choose between two compilers CON D : (query → bool) × (query → plan)2 → (query → plan) by: CON D(p, (C1, C2)) = λQ. if p(Q) then C1 (Q) else C2 (Q) Can also define CASES, ITERATION and FUNCTORS. Traditional compilers usually include a sequence of optimizing passes. An optimizing pass is given by an optimizing function Opt : query → query that transforms the query (program) from a higher-level representation to a lower-level one. We model on optimization pass as the partial compiler P C = (Opt, idplan ). Valeria de Paiva (Rearden Commerce) BACAT September, 2011 13 / 32
  • 14. Correctness “The main practical benefit we expect to obtain from the use of partial compilers in building systems is decreased design complexity." One expects that a monolithic compiler applying a sequence of complex optimization passes to an internal representation should be less robust than a collection of partial compilers solving the same problem. Because the partial compilers communicate through well-defined interfaces and maintain independent representations of their sub-problems. This makes sense if the correctness of compilers and partial compilers can be treated modularly. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 14 / 32
  • 15. Correctness Given a plan P and a query Q there is generally a natural correctness relation, stating that the plan is correct for the query, written as: P |= Q. Given a compiler C : query → plan and a correctness relation |= on plan and query, we say that the compiler C is correct w.r.t. to |=, if given a query Q, it returns a plan P such that P |= Q. Given a partial compiler P C : query → (query × (plan → plan)), and correctness relations |= on plan and query and |= on plan and query , we say P C is correct w.r.t. |= and |= if, given a query Q, P C returns a query Q and a function G : plan → plan such that if G is given a plan P , where P |= Q , then G generates a plan P such that P |= Q. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 15 / 32
  • 16. Correctness Correctness is preserved by all the operations described. Correct compilers can be assembled from partial compilers or compilers that are only correct for some queries. Importantly, this restricted correctness can also be treated modularly. We define a natural Hoare-type logic to reason about correctness. “Patching” bugs in an existing compiler, without access to its implementation. Assume we have a predicate bug : query → bool describing the queries for which a complex optimizing compiler COP T generates an incorrect plan. Assume we have a very simple (non-optimizing) compiler CSIM P LE that always generates correct plans. Then the compiler IF bug THEN CSIM P LE ELSE COP T ’corrects’ the bugs of COP T . Valeria de Paiva (Rearden Commerce) BACAT September, 2011 16 / 32
  • 17. µLINQ?... LINQ (Language-INtegrated Queries, 2008) is a set of extensions to traditional .Net languages like C and Visual Basic. Essentially a functional, strongly-typed hybrid language, inspired by database language and comprehension calculi. The main datatype in LINQ computations are lists of values, called (data) collections. The core LINQ operators are named after SQL: Select (a.k.a. map), Where (a.k.a. Þlter), SelectMany, OrderBy, Aggregate (a.k.a. fold), GroupBy (the output of which is a collection of collections), and Join. LINQ queries are evaluated by LINQ providers. A provider is given by a term P : query × data → data for some ‘query’ and ‘data’. Given a compiler C : query → plan, and a Run : plan × data → data, we obtain a provider λQ : query, d : data.Run(C(Q), data) Valeria de Paiva (Rearden Commerce) BACAT September, 2011 17 / 32
  • 18. µLINQ?... µLINQ, a reduced version of LINQ with only three operators: SelectMany, Aggregate and GroupBy. Types of are basic types and T the type of collections (finite lists) of elements of type T . A query of type S → T denotes a function from S collections to T collections. µLINQ queries consist of sequences of operator applications. MapReduce can be expressed using µLINQ queries: MapReduce(map, reduceKey, reduce) is the same as SelectM any < S, T > (map); GroupBy < T, K > (reduceKey); Select < T , U > (reduce) map : S → T , reduceKey : T → K , and reduce : T → U where we assume suitable function expressions are available. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 18 / 32
  • 19. Compiling µLINQ?... Single core: Basic building block for constructing µLINQ compilers. Start from three simple compilers, each of which can only generate a plan for a query consisting of just one of the operators: CSelectM any : F Exp → M P lan CAggregate : F Exp → M P lan and CGroupBy : F Exp → M P lan Use the CASES operation to combine these three elementary compilers into a compiler that can handle simple one-operator queries. use the generalized sequential partial compiler and the star operation to construct a compiler C µLINQ : MQuery MPlan for arbitrary µLINQ queries. If the above three simple compilers are correct, then, the combination is also correct. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 19 / 32
  • 20. Compiling µLINQ?... multicore: The assumption is that each core can execute a plan independently. The most obvious way to take advantage of the available parallelism is to decompose the work to perform by splitting the input data into disjoint parts, performing the work in parallel on each of the parts using a separate core,and then merging the results. Compilation for distributed execution The same strategy employed by the multi-core compiler for parallelizing µLINQ query evaluations across cores can be used to parallelize further, across multiple machines, in a manner similar to the DryadLINQ compiler. Apparently it ALL works, but.... Valeria de Paiva (Rearden Commerce) BACAT September, 2011 20 / 32
  • 21. Where is my category theory? Original Dialectica Categories (de Paiva, 1987) uses a category C, with finite limits, interpreting some type theory and builds the category Dial(C) with objects A = (U, X, α), where U, X are objects of C and α is a sub-object of U × X, that is a monic in Sub(U × X). BUT we can do it all simply over Sets! Then Dialectica category Dial has as objects triples, ie two sets and a relation between them. A map from A = (U, X, α) to B = (V, Y, β) is a pair of maps (f, F ), f : U → V , F : U × Y → X such that α(u, F (u, y)) ≤ β(f (u), y) What if the query reduction and the plan construction bits of the partial compiler were our sets U and X? We were told that the partial compiler P C has type : query → (query × (plan → plan)) But since A → (B × C) ∼ (A → B) × (A → C), P C is equivalent to = (query → query ) × (query → (plan → plan)) which is ∼ (query × plan → plan). Hence a partial compiler P C is exactly a = Dialectica map between A = (query, plan) and B = (query , plan ). Exactly?... Valeria de Paiva (Rearden Commerce) BACAT September, 2011 21 / 32
  • 22. Where is my category theory? I lied. Almost exactly. The relationship between the sets ‘query’ and ‘plan’ didn’t play much of a more in the discussion of partial compilers, while it is essential for the logic connection. The predicate α is not symmetric: you can think of (U, X, α) as ∃u.∀x.α(u, x), a proposition in the image of the Dialectica interpretation. and the predicate plays a huge part on Dialectica categories, and its generalizations But the functionals f and F correspond to the Dialectica Interpretation of implication and that is the kernel of the interpretation. Back to Logic... Valeria de Paiva (Rearden Commerce) BACAT September, 2011 22 / 32
  • 23. Functional Interpretations and Gödel’s Dialectica Starting with Gödel’s Dialectica interpretation(1958) a series of "translation functions" between theories Avigad and Feferman on the Handbook of Proof Theory: This approach usually follows Gödel’s original example: first, one reduces a classical theory C to a variant I based on intuitionistic logic; then one reduces the theory I to a quantifier-free functional theory F. Examples of functional interpretations: Kleene’s realizability Kreisel’s modified realizability Kreisel’s No-CounterExample interpretation Dialectica interpretation Diller-Nahm interpretation, etc... Valeria de Paiva (Rearden Commerce) BACAT September, 2011 23 / 32
  • 24. Gödel’s Dialectica Interpretation For each formula A of HA we associate a formula of the form AD = ∃u∀xAD (u, x) (where AD is a quantifier-free formula of Gödel’s system T) inductively as follows: when Aat is an atomic formula, then its interpretation is itself. Assume we have already defined AD = ∃u∀x.AD (u, x) and B D = ∃v∀y.BD (v, y). We then define: (A ∧ B)D = ∃u, v∀x, y.(AD ∧ BD ) (A → B)D = ∃f : U → V, F : U × X → Y, ∀u, y. ( AD (u, F (u, y)) → BD (f u; y)) (∀zA)D (z) = ∃f : Z → U ∀z, x.AD (z, f (z), x) (∃zA)D (z) = ∃z, u∀x.AD (z, u, x) The intuition here is that if u realizes ∃u∀x.AD (u, x) then f (u) realizes ∃v∀y.BD (v, y) and at the same time, if y is a counterexample to ∃v∀y.BD (v, y), then F (u, y) is a counterexample to ∀x.AD (u, x). Valeria de Paiva (Rearden Commerce) BACAT September, 2011 24 / 32
  • 25. Where is my category theory? Valeria de Paiva (Rearden Commerce) BACAT September, 2011 25 / 32
  • 26. Where is my category theory? Valeria de Paiva (Rearden Commerce) BACAT September, 2011 26 / 32
  • 27. More Original Dialectica Categories My thesis has four chapters, four main definitions and four main theorems. The first two chapters are about the “original" dialectica categories. Theorem (V de Paiva, 1987) If C is a ccc with stable, disjoint coproducts, then Dial(C) has products, tensor products, units and a linear function space (1, ×, ⊗, I, →) and Dial(C) is symmetric monoidal closed. This means that Dial(C) models Intuitionistic Linear Logic (ILL) without modalities. How to get modalities? Need to define a special comonad and lots of work to prove theorem 2... Valeria de Paiva (Rearden Commerce) BACAT September, 2011 27 / 32
  • 28. Original Dialectica Categories !A must satisfy !A →!A⊗!A, !A ⊗ B →!A, !A → A and !A →!!A, together with several equations relating them. The point is to define a comonad such that its coalgebras are commutative comonoids and the coalgebra and the comonoid structure interact nicely. Theorem (V de Paiva, 1987) Given C a cartesian closed category with free monoids (satisfying certain conditions), we can define a comonad T on Dial(C) such that its Kleisli category Dial(C)T is cartesian closed. Define T by saying A = (U, X, α) goes to (U, X ∗ , α∗ ) where X ∗ is the free commutative monoid on X and α∗ is the multiset version of α. Loads of calculations prove that the linear logic modalitiy ! is well-defined and we obtain a full model of ILL and IL, a posteriori of CLL. Construction generalized in many ways, cf. dePaiva, TAC, 2006. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 28 / 32
  • 29. What is the point of (these) Dialectica categories? First, the construction ends up as a model of Linear Logic, instead of constructive logic.This allows us to see where the assumptions in Godel’s argument are used (Dialectica still a bit mysterious...) It justifies linear logic in terms of a more traditional logic tool and conversely explains the more traditional work in terms of a ‘modern’ (linear, resource conscious) decomposition of concerns. Theorems(87/89): Dialectica categories provide models of linear logic as well as an internal representation of the dialectica interpretation. Modeling the exponential ! is hard, first model to do it. Still (one of) the best ones. Valeria de Paiva (Rearden Commerce) BACAT September, 2011 29 / 32
  • 30. Dialectica categories: 20 years later... It is pretty: produces models of Intuitionistic and clasical linear logic and special connectives that allow us to get back to usual logic. Extended it in a number of directions (a robust proof can be pushed in many ways): used in CS as a model of Petri nets (more than 2 phds), it has a non-commutative version for Lambek calculus (linguistics), it has been used as a model of state (with Correa and Hausler) and even of cardinalities of the continuum (Blass, Votjas(independently), Morgan&daSilva). Also used for generic models (with Schalk04) of Linear Logic, for Dialectica interpretations of Linear Logic and Games (Shirahata and Oliveira) and fibrational versions (B. Biering and P. Hofstra). Valeria de Paiva (Rearden Commerce) BACAT September, 2011 30 / 32
  • 31. Conclusions Working in interdisciplinary areas is hard, but rewarding The frontier between logic, computing, linguistics and categories is a fun place to be Mathematics teaches you a way of thinking, more than specific theorems Fall in love with your ideas and enjoy talking to many about them... (ok these conclusions were to promote mathematics for young women at Sonoma State, so maybe you don’t need them...) Thanks Vlad for keeping BACAT alive, Mike for organizing today, Mihai, Joel and Gordon for a great paper and all present for a fun discussion! Valeria de Paiva (Rearden Commerce) BACAT September, 2011 31 / 32
  • 32. References Categorical Semantics of Linear Logic for All, Manuscript. Dialectica and Chu constructions: Cousins?Theory and Applications of Categories, Vol. 17, 2006, No. 7, pp 127-152. A Dialectica Model of State. (with Correa and Haeusler). In CATS’96, Melbourne, Australia, Jan 1996. Full Intuitionistic Linear Logic (extended abstract). (with Martin Hyland). Annals of Pure and Applied Logic, 64(3), pp.273-291, 1993. Thesis TR: The Dialectica Categories http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-213.html A Dialectica-like Model of Linear Logic.In Proceedings of CTCS, Manchester, UK, September 1989. LNCS 389 The Dialectica Categories. In Proc of Categories in Computer Science and Logic, Boulder, CO, 1987. Contemporary Mathematics, vol 92, American Mathematical Society, 1989 all available from http://www.cs.bham.ac.uk/~vdp/publications/papers.html Valeria de Paiva (Rearden Commerce) BACAT September, 2011 32 / 32