VIDEOS 1 TO 50

2. Operational Semantics

Published: 2013/10/31

Channel: Arnaldo Pedro Figueira Figueira

DPL Week 2 - 03 Operational Semantics

Published: 2012/10/11

Channel: Nat Tuck

03 Basic Mechanics of Operational Semantics

Published: 2016/09/19

Channel: ICFP Video

Programming Language Operational Semantics

Published: 2016/02/20

Channel: JOMARI VICTOR Hugo

Operational semantics

Published: 2016/01/08

Channel: WikiAudio

Big-step operational semantics (An introduction)

Published: 2017/02/25

Channel: Ralf Laemmel

Programming Languages: Semantics

Published: 2014/01/24

Channel: RU Computer Science

Small-step operational semantics (An introduction)

Published: 2017/02/25

Channel: Ralf Laemmel

DPL Week 2 - 03b Operational Semantics Example

Published: 2012/10/11

Channel: Nat Tuck

1. Semantics Overview

Published: 2013/10/31

Channel: Arnaldo Pedro Figueira Figueira

13 - 2 - 13-02_ Operational Semantics -Compilers-Professor Alex Aiken

Published: 2012/06/06

Channel: OpenCourseOnline

Winter School on Denotational Semantics (30 Jan - 3 Feb, 2017) - Lecture 1

Published: 2017/03/12

Channel: JetBrainsTV Russia

Chlipala9 (operational semantics)

Published: 2015/06/24

Channel: formal methods

Lambda Jam 2014 - Eric Meijer - The Lost Art of Denotational Semantics

Published: 2014/09/13

Channel: YOW! Conferences

Operational Semantics for Single-Particle Classical Thermodynamics

Published: 2016/12/07

Channel: Simons Institute

Operational Semantics

Published: 2010/07/25

Channel: EW926

Oracle Semantics for Concurrent Separation Logic

Published: 2016/09/08

Channel: Microsoft Research

Oracle Semantics for Concurrent Separation Logic

Published: 2016/09/08

Channel: Microsoft Research

Programming Languages and Operational Semantics

Published: 2014/06/25

Channel: SpringerVideos

Transitions and Trees An Introduction to Structural Operational Semantics

Published: 2016/03/21

Channel: Jammie. W

UCL PPLV Research Seminar Part One: 'Types & Type-free Lambda Calculus', Dana Scott

Published: 2016/05/27

Channel: UCLComputerScience

Chlipala11 (more operational semantics)

Published: 2015/06/24

Channel: formal methods

Chlipala12 (operational semantics, evaluation contexts continues)

Published: 2015/06/24

Channel: formal methods

13 2 13 02 Operational Semantics 12m20s

Published: 2012/08/27

Channel: jasonofthel33t

Eelco Visser - Declare Your Language [1/2]

Published: 2015/09/17

Channel: dsldiss-2015

Formal Semantics - Programming Languages

Published: 2012/06/03

Channel: Udacity

ICFP 2012. Nils Anders Danielsson: Operational Semantics using the Partiality Monad.

Published: 2012/09/10

Channel: Malcolm Wallace

UCL PPLV Research Seminar Part Two: 'Types & Type-free Lambda Calculus', Dana Scott

Published: 2016/05/27

Channel: UCLComputerScience

Free Download Programming Languages and Operational Semantics A Concise Overview Undergraduate Topic

Published: 2017/03/04

Channel: P. Trendon

Semantics-based Program Verifiers for All Languages

Published: 2016/07/12

Channel: Microsoft Research

An introduction to denotational semantics

Published: 2017/03/26

Channel: Ralf Laemmel

Denotational semantics

Published: 2015/12/30

Channel: Audiopedia

Syntax And Semantics

Published: 2016/03/08

Channel: Jake Goldwasser

Semantics-Based Program Verifiers for All Languages

Published: 2016/11/15

Channel: SPLASH2016

SLE 2016 Keynote: Redex: Lightweight Semantics Engineering

Published: 2016/11/15

Channel: SPLASH2016

Teaching Programming with Gamified Semantics

Published: 2017/05/02

Channel: ACM SIGCHI

Automatically Deriving Cost Models for Structured Parallel Processes(...) - Kevin Hammond

Published: 2017/03/06

Channel: Erlang Solutions

TASE 2010 A Guarded Workflow Language and its Formal Semantics---Part IV

Published: 2010/08/25

Channel: Jackie Wang

The Laws of Programming with Concurrency

Published: 2016/06/22

Channel: Microsoft Research

The Lost Art of Denotational Semantics

Published: 2016/01/04

Channel: Parleys

[Wikipedia] Action semantics

Published: 2017/02/06

Channel: WikiTubia

Programming Languages Background - Lecture 1

Published: 2016/09/15

Channel: Hadi Moshayedi

V4 Axioms and Rules part 2

Published: 2015/10/22

Channel: Eric Van Wyk

Gordon Plotkin - Robin Milner: A Craftsman of Tools for the Mind

Published: 2010/08/26

Channel: The University of Edinburgh

Semantics for Physicists

Published: 2016/12/05

Channel: Simons Institute

Lesson 1.5: Syntax and Semantics

Published: 2015/06/13

Channel: Fitzle LLC

Denotational semantics

Published: 2016/01/22

Channel: WikiAudio

What is ABSTRACT DATA TYPE? What does ABSTRACT DATA TYPE mean? ABSTRACT DATA TYPE meaning

Published: 2017/09/06

Channel: The Audiopedia

3. Cool Semantics I

Published: 2013/10/31

Channel: Arnaldo Pedro Figueira Figueira

Lambda Jam 2015 - Robby Findler - Racket: A Programming-Language Programming Language

Published: 2015/10/18

Channel: YOW! Conferences

**Operational semantics** is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its execution and procedures, rather than by attaching mathematical meanings to its terms (denotational semantics). Operational semantics are classified in two categories: **structural operational semantics** (or **small-step semantics**) formally describe how the *individual steps* of a computation take place in a computer-based system. By opposition **natural semantics** (or **big-step semantics**) describe how the *overall results* of the executions are obtained. Other approaches to providing a formal semantics of programming languages include axiomatic semantics and denotational semantics.

The operational semantics for a programming language describes how a valid program is interpreted as sequences of computational steps. These sequences then *are* the meaning of the program. In the context of functional programs, the final step in a terminating sequence returns the value of the program. (In general there can be many return values for a single program, because the program could be nondeterministic, and even for a deterministic program there can be many computation sequences since the semantics may not specify exactly what sequence of operations arrives at that value.)

Perhaps the first formal incarnation of operational semantics was the use of the lambda calculus to define the semantics of LISP by [John McCarthy. "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I". Retrieved 2006-10-13.]. Abstract machines in the tradition of the SECD machine are also closely related.

The concept of operational semantics was used for the first time in defining the semantics of Algol 68. The following statement is a quote from the revised ALGOL 68 report:

The meaning of a program in the strict language is explained in terms of a hypothetical computer which performs the set of actions which constitute the elaboration of that program. (Algol68, Section 2)

The first use of the term "operational semantics" in its present meaning is attributed to Dana Scott (Plotkin04). What follows is a quote from Scott's seminal paper on formal semantics, in which he mentions the "operational" aspects of semantics.

It is all very well to aim for a more ‘abstract’ and a ‘cleaner’ approach to semantics, but if the plan is to be any good, the operational aspects cannot be completely ignored. (Scott70)

Gordon Plotkin introduced the structural operational semantics, Robert Hieb and Matthias Felleisen the reduction contexts,^{[1]} and Gilles Kahn the natural semantics.

**Structural operational semantics** (also called **structured operational semantics** or **small-step semantics**) was introduced by Gordon Plotkin in (Plotkin81) as a logical means to define operational semantics. The basic idea behind SOS is to define the behavior of a program in terms of the behavior of its parts, thus providing a structural, i.e., syntax-oriented and inductive, view on operational semantics. An SOS specification defines the behavior of a program in terms of a (set of) transition relation(s). SOS specifications take the form of a set of inference rules that define the valid transitions of a composite piece of syntax in terms of the transitions of its components.

For a simple example, we consider part of the semantics of a simple programming language; proper illustrations are given in Plotkin81 and Hennessy90, and other textbooks. Let range over programs of the language, and let range over states (e.g. functions from memory locations to values). If we have expressions (ranged over by ), values () and locations (), then a memory update command would have semantics:

Informally, the rule says that "**if** the expression in state reduces to value , **then** the program will update the state with the assignment ".

The semantics of sequencing can be given by the following three rules:

Informally, the first rule says that, if program in state finishes in state , then the program in state will reduce to the program in state . (You can think of this as formalizing "You can run , and then run using the resulting memory store.) The second rule says that if the program in state can reduce to the program with state , then the program in state will reduce to the program in state . (You can think of this as formalizing the principle for an optimizing compiler: "You are allowed to transform as if it were stand-alone, even if it is just the first part of a program.") The semantics is structural, because the meaning of the sequential program , is defined by the meaning of and the meaning of .

If we also have Boolean expressions over the state, ranged over by , then we can define the semantics of the **while** command:

Such a definition allows formal analysis of the behavior of programs, permitting the study of relations between programs. Important relations include simulation preorders and bisimulation. These are especially useful in the context of concurrency theory.

Thanks to its intuitive look and easy-to-follow structure, SOS has gained great popularity and has become a de facto standard in defining operational semantics. As a sign of success, the original report (so-called Aarhus report) on SOS (Plotkin81) has attracted more than 1000 citations according to the CiteSeer [2], making it one of the most cited technical reports in Computer Science.

**Reduction semantics** are an alternative presentation of operational semantics using so-called reduction contexts. The method was introduced by Robert Hieb and Matthias Felleisen in 1992 as a technique for formalizing an equational theory for control and state. For example, the grammar of a simple call-by-value lambda calculus and its contexts can be given as:

The contexts include a hole where a term can be plugged in. The shape of the contexts indicate where reduction can occur (i.e., a term can be plugged into) a term. To describe a semantics for this language, axioms or reduction rules are provided:

This single axiom is the beta rule from the lambda calculus. The reduction contexts show how this rule composes with more complicated terms. In particular, this rule can trigger for the argument position of an application like because there is a context that matches the term. In this case, the contexts uniquely decompose terms so that only one reduction is possible at any given step. Extending the axiom to match the reduction contexts gives the *compatible closure*. Taking the reflexive, transitive closure of this relation gives the *reduction relation* for this language.

The technique is useful for the ease in which reduction contexts can model state or control constructs (e.g., continuations). In addition, reduction semantics have been used to model object-oriented languages,^{[2]} contract systems, and other language features.

Big-step structural operational semantics is also known under the names **natural semantics**, **relational semantics** and **evaluation semantics**.^{[3]} Big-step operational semantics was introduced under the name *natural semantics* by Gilles Kahn when presenting Mini-ML, a pure dialect of the ML language.

One can view big-step definitions as definitions of functions, or more generally of relations, interpreting each language construct in an appropriate domain. Its intuitiveness makes it a popular choice for semantics specification in programming languages, but it has some drawbacks that make it inconvenient or impossible to use in many situations, such as languages with control-intensive features or concurrency.

A big-step semantics describes in a divide-and-conquer manner how final evaluation results of language constructs can be obtained by combining the evaluation results of their syntactic counterparts (subexpressions, substatements, etc.).

There are a number of distinctions between small-step and big-step semantics that influence whether one or the other forms a more suitable basis for specifying the semantics of a programming language.

Big-step semantics have the advantage of often being simpler (needing fewer inference rules) and often directly correspond to an efficient implementation of an interpreter for the language (hence Kahn calling them "natural".) Both can lead to simpler proofs, for example when proving the preservation of correctness under some program transformation.^{[4]}

The main disadvantage of big-step semantics is that non-terminating (diverging) computations do not have an inference tree, making it impossible to state and prove properties about such computations.^{[4]}

Small-step semantics give more control of the details and order of evaluation. In the case of instrumented operational semantics, this allows the operational semantics to track and the semanticist to state and prove more accurate theorems about the run-time behaviour of the language. These properties make small-step semantics more convenient when proving type soundness of a type system against an operational semantics.^{[4]}

- Algebraic semantics
- Axiomatic semantics
- Denotational semantics
- Formal semantics of programming languages

**^**Felleisen, M.; Hieb, R. "The Revised Report on the Syntactic Theories of Sequential Control and State".*Theoretical Computer Science*. doi:10.1016/0304-3975(92)90014-7.**^**Abadi, M.; Cardelli, L.*A Theory of Objects*.**^**[1]- ^
^{a}^{b}^{c}Xavier Leroy. "Coinductive big-step operational semantics".

- Gilles Kahn. "Natural Semantics".
*Proceedings of the 4th Annual Symposium on Theoretical Aspects of Computer Science*. Springer-Verlag. London. 1987. - Gordon D. Plotkin. A Structural Approach to Operational Semantics. (1981) Tech. Rep. DAIMI FN-19, Computer Science Department, Aarhus University, Aarhus, Denmark. (Reprinted with corrections in J. Log. Algebr. Program. 60-61: 17-139 (2004), preprint).
- Gordon D. Plotkin. The Origins of Structural Operational Semantics. J. Log. Algebr. Program. 60-61:3-15, 2004. (preprint).
- Dana S. Scott. Outline of a Mathematical Theory of Computation, Programming Research Group, Technical Monograph PRG–2, Oxford University, 1970.
- Adriaan van Wijngaarden et al. Revised Report on the Algorithmic Language ALGOL 68. IFIP. 1968. ([3])
- Matthew Hennessy. Semantics of Programming Languages. Wiley, 1990. available online.

None of the audio/visual content is hosted on this site. All media is embedded from other sites such as GoogleVideo, Wikipedia, YouTube etc. Therefore, this site has no control over the copyright issues of the streaming media.

All issues concerning copyright violations should be aimed at the sites hosting the material. This site does not host any of the streaming media and the owner has not uploaded any of the material to the video hosting servers. Anyone can find the same content on Google Video or YouTube by themselves.

The owner of this site cannot know which documentaries are in public domain, which has been uploaded to e.g. YouTube by the owner and which has been uploaded without permission. The copyright owner must contact the source if he wants his material off the Internet completely.

Wikipedia content is licensed under the GFDL and (CC) license