Categorical semantics for programming languages

Author(s):  
He Jifeng ◽  
C. A. R. Hoare

1992 ◽  
Vol 2 (1) ◽  
pp. 23-59 ◽  
Author(s):  
Andrea Asperti

AbstractIn the last two decades, category theory has become one of the main tools for the denotational investigation of programming languages. Taking advantage of the algebraic nature of the categorical semantics, and of the rewriting systems it suggests, it is possible to use these denotational descriptions as a base for research into more operational aspects of programming languages.This approach proves to be particularly interesting in the study and the definition of environment machines for functional languages. The reason is that category theory offers a simple and uniform language for handling terms and environments (substitutions), and for studying their interaction (through application).Several examples of known machines are discussed, among which the Categorical Abstract Machine of Cousineau et al. (1987) and Krivine's machine. Moreover, as an example of the power and fruitfulness of this approach, we define two original categorical machines. The first one is a variant of the CAM implementing a λ-calculus with both call-by-value and call-by-name as parameters passing modes. The second one is a variant of Krivine's machine performing complete reduction of λ-terms.



2009 ◽  
Vol 19 (3-4) ◽  
pp. 403-438 ◽  
Author(s):  
BART JACOBS ◽  
CHRIS HEUNEN ◽  
ICHIRO HASUO

AbstractArrows are an extension of the well-established notion of a monad in functional-programming languages. This paper presents several examples and constructions and develops denotational semantics of arrows as monoids in categories of bifunctors Cop × C → C. Observing similarities to monads – which are monoids in categories of endofunctors C → C – it then considers Eilenberg–Moore and Kleisli constructions for arrows. The latter yields Freyd categories, mathematically formulating the folklore claim ‘Arrows are Freyd categories.’



1992 ◽  
Vol 16 (2) ◽  
pp. 127-147
Author(s):  
Barney P. Hilken ◽  
David E. Rydeheard

This is an exercise in the description of programming languages as indexed categories. Type classes have been introduced into functional programming languages to provide a uniform framework for ‘overloading’. We establish a correspondence between type classes and comprehension schemata in categories. A coherence result allows us to describe subclasses and implicit conversions between types.





1997 ◽  
Vol 7 (2) ◽  
pp. 95-127
Author(s):  
BARNABY P. HILKEN ◽  
DAVID E. RYDEHEARD

We investigate the proof structure and models of theories of classes, where classes are ‘collections’ of entities. The theories are weaker than set theories and arise from a study of type classes in programming languages, as well as from comprehension schemata in categories. We introduce two languages of proofs: one a simple type theory and the other involving proof environments for storing and retrieving proofs. The relationship between these languages is defined in terms of a normalisation result for proofs. We use this result to define a categorical semantics for classes and establish its coherence. Finally, we show how the formal systems relate to type classes in programming languages.



Author(s):  
John C. Mitchell




1992 ◽  
Vol 139 (4) ◽  
pp. 335
Author(s):  
R.F. Hobson ◽  
J.D. Hoskin ◽  
J.L. Simmons ◽  
R.W. Spilsbury


Author(s):  
A. A. Nedbaylov

The calculations required in project activities for engineering students are commonly performed in electronic spreadsheets. Practice has shown that utilizing those calculations could prove to be quite difficult for students of other fields. One of the causes for such situation (as well as partly for problems observed during Java and C programming languages courses) lies in the lack of a streamlined distribution structure for both the source data and the end results. A solution could be found in utilizing a shared approach for information structuring in spreadsheet and software environment, called “the Book Method”, which takes into account the engineering psychology issues regarding the user friendliness of working with electronic information. This method can be applied at different levels in academic institutions and at teacher training courses.



Author(s):  
Petar Halachev ◽  
Aleksandra Todeva ◽  
Gergana Georgieva ◽  
Marina Jekova

he report explores and analyzes the application of the most popular programming languages from different organizations: GitHub; Stackoverflow; the TIOBE's Community index. The main client technologies: HTML; CSS; JavaScript; Typescript are presented and analysed. Features are characterized and the advantages and the disadvantages of the server technologies are described: Java; PHP; Python; Ruby. The application areas for web site development technologies have been defined. The creation of a quality web site is a complex and complicated process, but by observing some guidelines and recommendations in the work process can help to select the tools and the technologies in its design and development.



Sign in / Sign up

Export Citation Format

Share Document