Computer Science

Formal Language computer science

Formal language in computer science refers to a set of rules and symbols used to describe a language in a precise and unambiguous way. It is used to define programming languages, communication protocols, and other computer-related systems. Formal languages are often used in the design and analysis of algorithms and data structures.

Written by Perlego with AI-assistance

8 Key excerpts on "Formal Language computer science"

  • Encyclopedia of Software Engineering Three-Volume Set (Print)
    Thus, formal languages are used to provide a formal and neutral, i.e., implementation-independent, representation (often called formal specification —cf. the entry Formal Requirements Specification) of systems. In order to define an appropriate basis for reasoning about formal specifications, formal languages must have both a well-defined context-free grammar and a well-defined formal semantics. Whereas grammars help formal methods to process sentences written in a formal language, a formal semantics provides the meaning of those sentences. Here, a formal semantics provides logical rules of truth-conditions expressed in terms of truth relative to various parameters, thus allowing for automated reasoning. In general, we classify formal specification languages into three main classes: • Model-oriented formal languages support specification and construction of a mathematical model of the system under consideration. The goal is the derivation of an explicit model of the system’s desired behavior in terms of abstract mathematical objects. Note that the model-oriented approach (also called constructive) is typically associated with the use of definitions. The approach is exemplified by formal languages such as ASM (Abstract State Machines), B-Method, RAISE (Rigorous Approach to Industrial Software Engineering), VDM (Vienna Development Method), ASSL (Autonomic System Specification Language), the Z notation, etc. • Property-oriented formal languages have syntax identical to (or close to) a formal logic syntax providing some formal mathematical baseline. This class of languages (also called descriptive) is generally associated with the use of axioms
  • Computational Semiotics
    Gelfert 2011 : 272–3)
    Formally defined, a formal system is a set of formulas created out of symbols, rules and operations. We recall here that in set-theoretical language, a formal system defines a grammar that includes two set elements: FS = <S, F> . The first set S contains symbols; F contains systematic functions on S .3 Some disciplines call this highly regulated symbolic system a formal language . In such a case, a set of symbols is called the vocabulary or the lexicon, while the set of rules is called the syntax of the language. Expressed differently, a formal language is a set of atomic or discrete symbols (expressions, terms, etc.) and a set of constructed symbols (formulas, sentences, etc.) following rules (composition, generation, inference, automaton, production). Technically speaking, then, a formal model is not the set of rules and symbols as such. It is rather the set of sentences, formulas or equations that can be produced or generated by the syntax (or grammar) of a particular symbolic system.
    This means that formal languages are not only used in arithmetic or logic models; they can also be used in li nguistic models. For example, in linguistics, it can be said that formal grammar allows ‘the generation’ of its sentences . And in mathematics, a formal model will allow the systematic production of its equations
  • Encyclopedia of Computer Science and Technology
    eBook - ePub

    Encyclopedia of Computer Science and Technology

    Volume 38 - Supplement 23: Algorithms for Designing Multimedia Storage Servers to Models and Architectures

    • Allen Kent, James G. Williams, Allen Kent, James G. Williams(Authors)
    • 2021(Publication Date)
    • CRC Press
      (Publisher)
    formal method. We give different criteria for classification of formal methods. In the section Formal Methods: Examples, we give a summary of four widely used formal methods, VDM, Z, LARCH, and LOTOS. The section Formal Methods in Complex Computer Systems links formal methods to the engineering of complex computer systems. Here, two innovative approaches are introducted: H-ASTRAL and MTCCS. These two approaches offer constructions to specify both complex data and control structures, combined with facilities to model concurrency, real-time behavior, and continuous variables. The last section sums up our presentation and briefly looks into the future.

    FORMAL METHODS

    Software Specifications

    Formal specifications form a class of specifications that satisfies the requirement of precise and unambiguous descriptions. Preciseness by formal specifications is achieved through the use of a mathematically defined notation for the representation of a specification, and the absence of ambiguity is achieved through the fact that the meaning of a formal specification is defined in terms of an underlying mathematical model; that is, the interpretation of such a specification is unambiguous with respect to the underlying mathematical model. The interpretation of a specification in terms of the underlying model is what is referred to as its semantics. This observation introduces two domains: a specification domain and a semantic domain (see Fig. 1 ).
    Formal specification notations provide facilities to express abstraction. As such, the concept of abstraction is not fundamental for formal specifications, but, in practice, the use of abstraction techniques turns out to be almost always possible. This usage allows the specifier to express requirements or designs at a suitable level of abstraction. Hereby, a transformational model is introduced, well known in software development; systems are initially modeled by high-level abstract descriptions and are iteratively refined through a number of transformation steps to finally arrive at an implementation.
    The following definition of a formal specification language can be given.
    Definition 1. A formal specification language is a specification language with a well-defined syntax and semantics, both defined on a mathematical basis. □
    FIGURE 1
    The specification domains.
    The syntax of a formal specification language is usually defined by a contextfree grammar. The symbols of the language can either be textual or graphical, but, usually, they are textual. The semantics usually consists of static semantics and a dynamic semantics. The static semantics defines which sentences from the language generated by the grammar are well formed. The dynamic semantics defines a mathematic interpretation of a well-formed specification in terms of an underlying semantic model.
  • Computer Fundamentals - 8th Edition
    eBook - ePub

    Computer Fundamentals - 8th Edition

    Concepts, Systems & Applications

    C HAPTER 12 Computer Languages This chapter continues with the discussion of development of computer programs that we started in Chapter 11. Once a developer/programmer has finished planning a computer program, he/she is now ready to write the steps of the corresponding algorithm in a programming language. Computer language or programming language is a language acceptable to a computer system, and the process of writing instructions in such a language is called programming or coding. The goal of this chapter is to introduce some popular programming languages. Chapter 21 deals with a popular programming language (C) in greater detail. ANALOGY WITH NATURAL LANGUAGES Language is a means of communication. We use a natural language such as English, to communicate our ideas and emotions to others. Similarly, a programmer uses a computer language to instruct a computer what he/she wants it to do. All natural languages (English, French, German, etc.) use a standard set of words and symbols (+, -, :, ;, <, >, etc.) for communication. Everyone using that language understands these words and symbols. The set of words allowed in a language is called its vocabulary. For example, the words used in English form the vocabulary of English language. Each word has a definite meaning. Similarly, every computer language has a vocabulary of its own. Each word in the vocabulary has a definite unambiguous meaning. The main difference between a natural language and a computer language is that natural languages have a large vocabulary but most computer languages use a very limited or restricted vocabulary. This is because a programming language by its very nature and purpose does not need to say too much
  • Philosophy and Computer Science
    • Timothy Colburn(Author)
    • 2015(Publication Date)
    • Routledge
      (Publisher)
    The proper conception is that of computer science as a branch of applied mathematics, where even that position may not go far enough in acknowledging the limitations imposed by physical devices. 50 For myself, I see a possible replacement of the mathematical paradigm by an experimental science paradigm for computer science, and I see it in a way that should reconcile heretofore conflicting views. But whether the paradigm be experimental science, or applied mathematics, or engineering, it is interesting to note, and a tribute to the value of philosophizing in any age, that after studying the important contributions of various writers I come finally to an observation by Carnap about the role of mathematics in science: All of logic including mathematics, considered from the point of view of the total language, is thus no more than an auxiliary calculus for dealing with synthetic statements. Formal science has no independent significance, but is an auxiliary component introduced for technical reasons in order to facilitate linguistic transformations in the factual sciences. The great importance of the formal sciences, that is, of logic and mathematics, within the total system of science is thereby not in the least denied but instead, through a characterization of this special function, emphasized. 51 Although Carnap made this observation well before the Age of Computers, had he lived to take part in the program verification debate, he might have couched his observation thus: All of logic including formal verification, considered from the point of view of the total language of computer science, is no more than an auxiliary calculus for dealing with broader issues of computer problem-solving as an experimental discipline. Formal verification has no independent significance, but is an auxiliary component introduced for technical reasons in order to facilitate linguistic transformations from formal program-specification models to formal program-execution models
  • Semantics - Foundations, History and Methods
    • Klaus Heusinger, Claudia Maienborn, Paul Portner, Klaus Heusinger, Claudia Maienborn, Paul Portner(Authors)
    • 2019(Publication Date)
    formal system must consist of four components:
    • (i) a lexicon specifying the terminal expressions or words , and a set of non-terminal symbols or categories,
    • (ii) a set of production rules which determine how the well formed expressions of any category of the formal language may be generated,
    • (iii) a set of axioms or expressions of the lexicon that are considered primitive,
    • (iv) a set of inference rules , determining how expressions may be manipulated.
    A formal system may be formulated purely abstractly without being intended as representation of anything, or it may be designed to serve as a description or simulation of some domain of real phenomena or, as intended in linguistics, modeling aspects of empirical, linguistic data.
    A formal proof is the product of a formal system, consisting of (i) axioms, expressions of the language that serve as intuitively obvious or in any case unquestionable first principles, assumed to be true or taken for granted no matter what, and (ii) applications of the rules of inference that generate sequences of steps in the proof, resulting in its conclusion, the final step, also called a theorem . The grammar of a language, whether logical or natural, is a system of rules that generates all and only all the grammatical or well-formed sentences of the language. But this does not mean that we can always get a definite answer to the general question whether an arbitrary string belongs to a particular language, something a child learning its first language may actually need. There is no general decision procedure determining for any arbitrary given expression whether it is or is not derivable in any particular formal system (Arbib 1969 ; Davis 1965 ; Savitch, Bach & Marsh 1987 ). However, this question is provably decidable for sizable fragments of natural language, even if some form of higher order quantification is permitted (Nishihara, Morita & Iwata 1990 ; Pratt-Hartmann 2003 ; Pratt-Hartmann & Third 2006
  • Language and Philosophical Problems
    • Sören Stenlund(Author)
    • 2013(Publication Date)
    • Routledge
      (Publisher)
    1  It manifests itself in a characteristic use of the term ‘natural language’. Natural languages are conceived as being ‘in principle’ formal languages. (This is explicit, for instance, in Davidson’s and Montague’s writings.)
    2  Separation of form and content, expression and meaning. It is supposed to be possible to give (at least in principle) a specification of all the external features of the expressions of a language that are relevant to their meaning without referring to or presupposing the meaning or the use of the expressions in this specification. Considerations of meaning and use may be necessary to finding the specification, to isolating the relevant features of an expression, but once they are found the specification can be stated and understood ‘in abstraction from content and use’. (I call this the external or mechanical notion of the form of an expression and its use, and I shall contrast it below with what I call the logical form of an expression and its use. This notion of logical form is not to be confused with the form of an expression as represented by means of the methods of formal logic, by means of formalization, which is an instance of external form.)
    3  The relation between a language and its use in real-life situations is taken to be of the same kind as the relation between a calculus or theory (such as the probability calculus) and its application. Language is exhaustively defined as language through its syntactical and semantical rules. The pragmatic rules, the rules for the use of a language in real situations, are determined on the basis of its syntax and semantics, which are therefore supposed to be conceptually prior to and independent of the pragmatic rules. This could be stated more generally as follows: the logical grammar of the expressions of a language are supposed to be formally
  • HCI Models, Theories, and Frameworks
    eBook - ePub

    HCI Models, Theories, and Frameworks

    Toward a Multidisciplinary Science

    Section 14.2 .
    Third, various techniques from mathematics—simple counting to sophisticated equations—may be used to reason about specific problems in HCI. In this book, we see chapters including Fitts’ Law, a logarithmic regression; information-foraging theory, which involves differential equations; not to mention the heavy reliance on statistical modeling and analysis of virtually all quantitative empirical work.
    Finally, the design artifact of HCI involves people and computers working together within a sociotechnical whole. Among the many political, social, and emotional aspects of this interaction, there is also an overall computational facet. The theory of computation has, from the beginning, spanned more than mere mechanical computation, and conversely an understanding of digital computation can help us understand some of the complexity within rich organizational ecologies.

    14.1.1 What Is Formal?

    As with all words, “formal” is used to mean different things by different people and in different disciplines. In day-to-day life, formal may mean wearing a dinner jacket and bow tie or using proper language. That is, formal is about the outward form of things—a formal greeting may belie many emotions beneath the surface.
    Taken strongly, formalism in mathematics and computing is about being able to represent things in such a way that the representation can be analyzed and manipulated without regard to the meaning. This is because the representation is chosen to encapsulate faithfully the significant features of the meaning.
    Let’s see what this means in simple mathematics. One night you count the cockroaches on the wall—213. The next night you count again—279. Now because 279 is bigger than 213, you can assert that there were more cockroaches on the second night than the first. How do you know? Did you line up the cockroaches in queues? No! You know because you compared the numbers. The numbers 213 and 279 represented faithfully the significant feature of the cockroaches. Of course, the cockroaches on the first night might have been bigger, a different color, more friendly, so the numbers don’t capture everything.
Index pages curate the most relevant extracts from our library of academic textbooks. They’ve been created using an in-house natural language model (NLM), each adding context and meaning to key research topics.