194,597 research outputs found

    Models of quantum computation and quantum programming languages

    Full text link
    The goal of the presented paper is to provide an introduction to the basic computational models used in quantum information theory. We review various models of quantum Turing machine, quantum circuits and quantum random access machine (QRAM) along with their classical counterparts. We also provide an introduction to quantum programming languages, which are developed using the QRAM model. We review the syntax of several existing quantum programming languages and discuss their features and limitations.Comment: 23 pages, 10 figures, 9 listing

    Algorithmique et Programmation. Automates finis. Chap. I/9

    Get PDF
    This is the introduction to Section I/9, Algorithms and Programming, of the Encyclopaedia of Computer Science and Information Systems. This section is devoted to three fundamental tools in computer science: algorithms, machine models and programming languages. Introduced around 1950, finite automata form the most elementary model of machine. This chapter presents automata in the usual sense, that accept or reject a given word and sequential automata, that produce an output. After a brief presentation of Kleene's theorem, the cornerstone of the theory of automata, we describe applications in various domains, notably their use as a verification model and their applications to natural languages

    Behavioural Types

    Get PDF
    Behavioural type systems in programming languages support the specification and verification of properties of programs beyond the traditional use of type systems to describe data processing. A major example of such a property is correctness of communication in concurrent and distributed systems, motivated by the importance of structured communication in modern software. Behavioural Types: from Theory to Tools presents programming languages and software tools produced by members of COST Action IC1201: Behavioural Types for Reliable Large-Scale Software Systems, a European research network that was funded from October 2012 to October 2016. As a survey of the most recent developments in the application of behavioural type systems, it is a valuable reference for researchers in the field, as well as an introduction to the area for graduate students and software developers

    Behavioural Types

    Get PDF
    Behavioural type systems in programming languages support the specification and verification of properties of programs beyond the traditional use of type systems to describe data processing. A major example of such a property is correctness of communication in concurrent and distributed systems, motivated by the importance of structured communication in modern software. Behavioural Types: from Theory to Tools presents programming languages and software tools produced by members of COST Action IC1201: Behavioural Types for Reliable Large-Scale Software Systems, a European research network that was funded from October 2012 to October 2016. As a survey of the most recent developments in the application of behavioural type systems, it is a valuable reference for researchers in the field, as well as an introduction to the area for graduate students and software developers

    An Innovative Approach: Teaching Programming Languages Using A Second Language Acquisition Theory

    Get PDF
    Introduction to Computing for Engineers, EGR 115, has proven to be a challenging course for many students, especially if it is their first contact with programming languages. The purpose of Second Language Acquisition applied to a Blended Learning environment (SLA-aBLe) is to make the process of learning MATLAB in hybrid courses more intuitive. The hybrid course material aims to enhance students’ understanding of the logic orientated concepts by integrating Second Language Acquisition (SLA) theory into programming language study. For this purpose, four topics were redesigned to include narrated PowerPoint slides, online quizzes, online discussion board, and think-pair-share lab exercises. Utilizing students’ feedback and data analysis, the research team is going to further improve course materials for subsequent terms. Based on the principles of SLA theory, the effectiveness of past applications and the improvements will be illustrated and future work will be discussed

    Methodic of joint using the tools of automation of lexical and parsing analysis in the process of teaching the programming theory of future informatics teachers

    Get PDF
    Цілі дослідження: розробити методику спільного використання засобів автоматизації лексичного та синтаксичного аналізу lex та yacc у процесі навчання теорії програмування на основі функціональної парадигми. Завдання дослідження: визначити місце і роль синтаксичного аналізу у формуванні професійних інформатичних компетентностей майбутніх учителів інформатики; визначити засоби автоматизації розробки компіляторів у навчанні теорії програмування; розробити основні компоненти методики спільного використання засобів автоматизації лексичного та синтаксичного аналізу в процесі навчання теорії програмування майбутніх учителів інформатики. Об’єкт дослідження: навчання теорії програмування майбутніх учителів інформатики. Предмет дослідження: використання засобів автоматизації лексичного та синтаксичного аналізу в процесі навчання теорії програмування майбутніх учителів інформатики. Використані методи дослідження: аналіз наукових публікацій, самоаналіз досвіду роботи, проектування методики. Результати дослідження. Визначено місце і роль синтаксичного аналізу у формуванні професійних інформатичних компетентностей майбутніх учителів інформатики. Виокремлені засоби автоматизації лексичного (lex) та синтаксичного (yacc) аналізу, інваріантні до використовуваної мови програмування. Показано доцільність використання мов функціонального програмування Scheme та SML для навчання методів розробки компіляторів у курсі теорії програмування. На прикладі діалекту MosML проілюстровано основні компоненти методики спільного використання засобів автоматизації лексичного та синтаксичного аналізу в процесі навчання теорії програмування майбутніх учителів інформатики. Основні висновки і рекомендації: 1) розглянутий приклад розширеного калькулятора може бути доопрацьований шляхом зміни граматики, зокрема – для уведення умовних та циклічних конструкцій; 2) запропонована схема може бути застосована для реалізації інтерпретатора будь-якої формальної мови з довільним способом типізації – доцільними навчальними прикладами будуть підмножини процедурних мов Basic та C й функціональних Scheme та SML: за умови додавання фази генерації машинного коду це надає можливість продемонструвати повний цикл розробки компілятора мови програмування.Research goals: to develop a methodic of joint using the tools of automation of lexical (lex) and parsing (yacc) analysis in the process of teaching the programming theory based on a functional paradigm. Research objectives: to determine the place and role of parsing analysis in the formation of professional informatics competences of future informatics teachers; to define tools of compilers development automation in teaching the programming theory; to develop the main components of the methodic of joint using the tools of automation of lexical and parsing analysis in the process of teaching the programming theory of future informatics teachers. Object of research: teaching the programming theory of future informatics teachers. Subject of research: the use of the tools of automation of lexical and parsing analysis in the process of teaching the programming theory of future informatics teachers. Research methods used: analysis of scientific publications, self-analysis of work experience, methodic design. Results of the research. The place and role of parsing analysis in formation of professional informatics competences of future informatics teachers is determined. Separated automation tools for lexical (lex) and syntax (yacc) analysis invariant to the programming language used. The expediency of using functional programming languages Scheme and SML is shown for learning how to develop compilers in the course of programming theory. The example of the MosML dialect illustrates the main components of the methodic of joint using the tools of automation of lexical and parsing analysis in the process of teaching the programming theory of future informatics teachers. The main conclusions and recommendations: 1) the considered example of the expanded calculator can be refined by changing the grammar, in particular – for the introduction of conditional and cyclic constructions; 2) the proposed scheme can be used to implement the interpreter of any formal language with an arbitrary typing method – the appropriate examples of study will be subsets of procedural languages Basic and C and functional languages Scheme and SML: provided the addition of the machine code generation phase, this provides an opportunity to demonstrate the full development cycle for programming language compiler

    Theoretical aspects of the syntax and semantics of the Java language.

    Get PDF
    This thesis investigates two theoretical aspects of the formal definition of programming languages, using case studies in Java. First, we define modular grammars which can be used to decompose large grammars. Modular grammars allow the modular definition of formal languages. They provide concepts of component and architecture for grammars and languages. We show that this modular method can be used to define a modem practical language like Java. Second, we describe recent general work on the definition of interfaces and interface definition languages (IDLs). In Rees, Stephenson and Tucker [2003], there is an analysis of the idea of interfaces and an algebraic model of a general IDL. We apply these ideas to analyzing aspects of interfaces in Java. The thesis is comprised of five chapters together with an appendix. Chapter 1 consists of an introduction to the thesis. The second chapter reports on object-oriented programming and the Java programming language with particular emphasis on a mathematical theory of its definition. Chapter 3 deals with a modular decomposition of Java syntax and grammars. In Chapter 4, we expound a theory of the modular definitions of interfaces within any programming language. One important feature of the general account is the process of flattening the hierarchical structure produced by modularity. In Chapter 5, we attempt to implement the results of research into the Interface Definition Language discussed in Chapter 4. We define 'Little Java', a subset of the programming language Java, and endeavour to provide a series of translations from 'Little Java'' to an abstract object-oriented interface definition language OO-IDL and thence to an interface definition language AS-IDL for abstract data types. In the Appendix, we review the history of the Java language

    Introduction to ''Interactive models of computation and program behaviour"

    Get PDF
    Since the mid-eighties of the last century, a fruitful interplay between computer scientists and mathematicians has led to much progress in the understanding of programming languages, and has given new impulse to areas of mathematics such as proof theory or category theory. The volume of which this text is an introduction contains three contributions: Categorical semantics of linear logic, by P.-A. Melliès, Realizability in classical logic, by J.-L. Krivien, Abstract machines for dialogue games, by P.-L. Curien and H. Herbelin, which we place here in perspective
    corecore