Computer Science

Programming Languages

Programming languages are formal languages used to communicate instructions to a computer. They allow programmers to write code that can be understood and executed by a computer. Each programming language has its own syntax and semantics, and different languages are suited to different types of tasks and applications.

Written by Perlego with AI-assistance

6 Key excerpts on "Programming Languages"

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.
  • Designing and Developing Robust Instructional Apps
    • Kenneth J. Luterbach(Author)
    • 2018(Publication Date)
    • Routledge
      (Publisher)

    ...Chapter 3 Computer Programming Computer Programming Languages are tools for problem solving and creative expression. Indeed, people engaged in creative problem solving with computer Programming Languages developed technologies that resulted in the epochal transformation of the past half century. This information era is marked by computer programs (software) that implement the communication protocols enabling the Internet and the web; software enabling mobile communications; software enabling email and other messaging; software for shopping; software for creating 2D images and 3D models; animation software; office productivity software; voice recognition software, and software for learning, for instance. Learning a computer programming language is extremely beneficial as an outlet for creative expression and problem solving. One selects a particular programming language to fit a variety of circumstances. When it is necessary to receive and respond to data at particular microsecond intervals, one writes code in a low-level programming language using the CPU’s instruction set, which addresses memory and input ports directly. Commonly, though, application software is written in a high-level computer programming language, which eliminates the need to consider the computer’s architecture. After distinguishing between low-level and high-level computer Programming Languages, it is helpful to recognize four main programming paradigms: imperative (procedural/ structural); object-oriented; functional; and logical. Each paradigm has something to offer problem solvers (Kedar, 2011). In this book, we will not be using Haskell (Thompson, 2011) or any functional programming language (so no f(g(x)) for us in this work). Also, we do not consider a logic programming language, such as Prolog. We will consider object-oriented concepts, as necessary. Object-oriented languages, such as C++, C# (C sharp), Objective-C, and Java include imperative language components...

  • Computer Science
    eBook - ePub

    Computer Science

    Discovering God's Glory in Ones and Zeros

    • Jonathan R. Stoddard(Author)
    • 2015(Publication Date)
    • P Publishing
      (Publisher)

    ...Programming Languages We have just looked at how computers solve problems by breaking them into a series of small steps. In this discussion of Programming Languages we will now move up a level to look at how computers take the words of a programmer and turn them into binary code. To write a computer program the programmer must, like the theological student learning biblical Hebrew, learn a foreign language. Knuth notes how often theological terms can be applied to programmers: “In the 60s, people would often talk about ‘Algol-theologians’; these were people who were skilled in the exegesis of obscure texts passed down by international committees. Programmers could use all the analogies of religious studies when we were discussing computer languages.” 23 Computers perform operations on strings of binary code. A string like 0001 0010 0011 0100 makes little sense to a human, but is the type of code required by computers. If programming required everything to be written in binary code, I doubt many people would want to study computer science. Fortunately there are a series of steps, or we could call them translations, that take place in order to bring the conceptual program in a person’s mind to binary code that is understood by the computer. The major stages of translation that we will look at are: the conceptual program → high-level programming language → machine code. The conceptual program exists in the mind of the programmer. Perhaps you wanted to write a simple program to calculate your tip at a restaurant. You decide that you will have three tip levels to correspond to the service you received. You will tell the program your bill and how good your service was, and the computer will tell you how much your bill will be with the tip added to it. In these sentences we have designed the conceptual program. We know what inputs we need, what operation the computer will perform, and the output...

  • Principles of Quantitative Development
    • Manoj Thulasidas(Author)
    • 2012(Publication Date)
    • Wiley
      (Publisher)

    ...The interested reader can download this file (and other up-to-date information) from the book website: http://pqd.thulasidas.com. 5.2.3 Lexical structure of a programming language A computer program specifies a series of steps or computations that the processor has to execute in a sequence. While resembling mathematics in their form, computer code is far from algebraic statements. For example, x = x + 1 in a computer source code means something very different from the mathematical falsehood it seems to state, as all programmers know. It instructs the computer to take the contents of the memory location labelled x, add 1 to it and store the result back in the same location x. In programming lingo, it ‘increments’ x. In this example, x holds a number, perhaps an integer. Integers are one of the many built-in types in a high-level programming language. Other types include float, char and so on. How does the computer program know the type of a variable? After all, the term ‘variable’ is a euphemism for a location in the computer memory. The program can ‘guess’ the type from the context of the variable. For instance, the statement y = x + 1, where x is an integer, implies that y is likely to be of int type. Such guesswork often leads to nasty surprises. Therefore, most modern languages are ‘strongly typed’, requiring the programmer to explicitly declare the variables and their types. A variable declaration assigns a certain type to a memory location you are planning to use. For instance, the declaration statement int x tells the computer that you need enough memory to hold an integer, which you will access using the label x...

  • Artificial Intelligence and Software Engineering
    • Derek Partridge(Author)
    • 2013(Publication Date)
    • Routledge
      (Publisher)

    ...How do we do this? We get the computer to manage much of the complexity for us, and this is done by means of a programming support environment within which we provide a comprehensive set of power tools for system designers and developers (to steal a phrase from Sheil, 1983).Support environmentsThe notion of providing a computational environment to assist the programmer in the programming task is not new. Significantly, it was a major feature of AI programming in the days before conventional programmers fully realized its importance. And this is quite understandable once we accept the fundamental difference between what is called “programming” in this two areas. In conventional programming we are translating a formal specification into an alternative (formal) notation that will result in an effectively computable algorithm. This translation is by no means trivial, nor is it devoid of the need for insight and imagination, but it is, at bottom, a transformation between formal notations in which some equivalence is to be preserved.Programming, from the conventional computer science viewpoint, is the transformation of a formal specification into a computational procedure for correctly realizing the given specification.Dijkstra (1989), for example, might well support this statement about programming, although I suspect he might object that it is too weak. For Dijkstra “the programmer’s … main task is to give a formal proof that the program he proposes meets the equally formal functional specification” p. 1404. Programming in AI has never been this process—some would say, “that’s its big mistake”, but I don’t think so...

  • Coding + Math
    eBook - ePub

    Coding + Math

    Strengthen K–5 Math Skills With Computer Science

    ...This is why programming manuals usually begin with the topic of variables under “Basics” sections (e.g., Whitaker, 2017) and in one instance refers to variables as “one of the most important parts of programming” (p. 25). The fact that variables and functions are listed as prerequisites to advanced-placement programming courses in high school speaks to the importance of understanding variables as a foundation to successful programming. Citing results from several of the twenty studies in their review that specifically examined the use of data in Scratch programming, Zhang and Nouri (2019) concluded: “Regarding variables, the evidence in the literature points towards students’ poor understanding of the concept and reveals the low ability to integrate variables and artefacts.” This finding highlights an opportunity for elementary teachers to provide more emphasis on understanding variables in mathematics instruction to support students’ acquisition of basic programming concepts. There is evidence that children as young as six years old are capable of thinking in terms of variables (Blanton et al., 2017) and even suggests that introducing the concept earlier may help to avoid difficulty in understanding it later. Operators Another core concept in programming, and one that aligns strongly with math instruction, is operators. Mathematics operators in programming are usually straightforward as long as the learner has acquired understanding of add, subtract, multiply, and divide, in which case it is simply a matter of substituting some symbols. For example, the math operators +, -, x, and ÷ are represented in several Programming Languages as +, -, *, and /, respectively. Relational operators (e.g., <, >, =, >=, <=) are used in code in much the same way they are used in mathematics. Boolean logic operators (e.g., And, Or, Not) are evaluated in terms of being true or false, and they are useful both in decision trees and database searches...

  • Technology and Workflows for Multiple Channel Content Distribution
    eBook - ePub

    Technology and Workflows for Multiple Channel Content Distribution

    Infrastructure implementation strategies for converged production

    • Philip J. Cianci(Author)
    • 2012(Publication Date)
    • Routledge
      (Publisher)

    ...Appendix C: Programming Languages and application development With computer-based systems everywhere in the media infrastructure, it goes without saying that, since computers can't tell themselves what to do, someone has to instruct the machine as to how to behave. Media resides on ingest and playout servers: rundowns are written in newsroom applications that communicate directly with wire services, the Internet, and other resources; graphics production and playout are totally dependent on computer applications; and content can be automatically moved to playout servers by automation systems. THE TOWER OF BINARY BABBLE Writing code for computer systems is an esoteric art. It has evolved from handwritten instructions that had to be meticulously converted from mnemonics to strings of ones and zeros, and then loaded into program memory by setting switches that were set to the binary code, word by word, and then the pressing of a button. Then the next instruction was loaded in the same manner, and on and on… Today, designing and coding robust Windows-based applications is a challenge, even to the most experienced programmers. Software development kits (SDK) and module libraries have eliminated the need to write many functions, but with the abundance of source code to choose from, an application developer must make selections carefully. Choose the wrong previously written code and you may spend more time debugging it than writing it. Language evolution (and generations) Programming language evolution is described in generations, the first generation being binary ones and zeros. The second generation is known as assembly language, something only an electrical engineer or mathematician could understand and love. Third-generation languages are human readable—just about any logical person can write programs with it (often poorly)...