Monday, October 26, 2020

Formal Syntax and Semantics of Programming Languages

REALICE LAS ACTIVIDADES QUE SE ENCUENTRAN AL FINAL DEL TEXTO  

Chapter 1 

SPECIFYING SYNTAX

Language provides a means of communication by sound and written symbols. Human beings learn language as a consequence of their life experiences, but in linguistics—the science of languages—the forms and meanings of languages are subjected to a more rigorous examination. This science can also be applied to the subject of this text, programming languages. In contrast to the natural languages, with which we communicate our thoughts and feelings, programming languages can be viewed as artificial languages defined by men and women initially for the purpose of communicating with computers but, as importantly, for communicating algorithms among people. 

Many of the methods and much of the terminology of linguistics apply to programming languages. For example, language definitions consist of three components: 

1. Syntax refers to the ways symbols may be combined to create well-formed sentences (or programs) in the language. Syntax defines the formal relations between the constituents of a language, thereby providing a structural description of the various expressions that make up legal strings in the language. Syntax deals solely with the form and structure of symbols in a language without any consideration given to their meaning. 

2. Semantics reveals the meaning of syntactically valid strings in a language. For natural languages, this means correlating sentences and phrases with the objects, thoughts, and feelings of our experiences. For programming languages, semantics describes the behavior that a computer follows when executing a program in the language. We might disclose this behavior by describing the relationship between the input and output of a program or by a step-by-step explanation of how a program will execute on a real or an abstract machine. 

3. Pragmatics alludes to those aspects of language that involve the users of the language, namely psychological and sociological phenomena such as utility, scope of application, and effects on the users. For programming languages, pragmatics includes issues such as ease of implementation, efficiency in application, and programming methodology.

Syntax must be specified prior to semantics since meaning can be given only to correctly formed expressions in a language. Similarly, semantics needs to be formulated before considering the issues of pragmatics, since interaction with human users can be considered only for expressions whose meaning is understood. In the current text, we are primarily concerned with syntax and semantics, leaving the subject of pragmatics to those who design and implement programming languages, chiefly compiler writers. Our paramount goal is to explain methods for furnishing a precise definition of the syntax and semantics of a programming language. We begin by describing a metalanguage for syntax specification called BNF. We then use it to define the syntax of the main programming language employed in this text, a small imperative language called Wren. After a brief look at variants of BNF, the chapter concludes with a discussion of the abstract syntax of a programming language. At the simplest level, languages are sets of sentences, each consisting of a finite sequence of symbols from some finite alphabet. Any really interesting language has an infinite number of sentences. This does not mean that it has an infinitely long sentence but that there is no maximum length for all the finite length sentences. The initial concern in describing languages is how to specify an infinite set with notation that is finite. We will see that a BNF grammar is a finite specification of a language that may be infinite.

Available at https://www.mobt3ath.net/uplode/book/book-26246.pdf. Acceso el 26 de octubre, 2020.


1 comment:

  1. A- CONTESTE LAS SIGUIENTES PREGUNTAS

    1. ¿Qué es el lenguaje?
    2. ¿Cómo aprende el hombre una lengua?
    3. ¿A qué se puede aplicar la lingüística según el sexto?
    4. ¿Qué diferencia hay entre las lenguas naturales y los lenguajes de programación?

    B- COMPLETE EN ESPAÑOL LAS SIGUIENTES ORACIONES

    1. La sintaxis se refiere a las maneras ...
    2. La sintaxis se ocupa de ...
    3. La semántica muestra ...
    4. Para los lenguajes de programación, la semántica ...
    5. Podemos desglosar el comportamiento de una computadora ...
    6. Para los lenguajes de programación, la pragmática ...

    C- HAGA UN RESUMEN DEL ULTIMO PÁRRAFO

    ReplyDelete

Deje sus comentarios.