Basics of Compiler Design: Anniversary Edition

by | Dec 11, 2018 | Computers and Technology | 0 comments

In order to reduce the complexity of designing and building computers, nearly all of these are made to execute relatively simple commands (but do so very quickly). A program for a computer must be built by combining these very simple commands into a program in what is called machine language. Since this is a tedious and errorprone process most programming is, instead, done using a high-level programming language. This language can be very different from the machine language that the computer can execute, so some means of bridging the gap is required. This is where the compiler comes in.

A compiler translates (or compiles) a program written in a high-level programming language that is suitable for human programmers into the low-level machine language that is required by computers. During this process, the compiler will also attempt to spot and report obvious programmer mistakes.

Using a high-level language for programming has a large impact on how fast programs can be developed. The main reasons for this are:

  • Compared to machine language, the notation used by programming languages is closer to the way humans think about problems.
  • The compiler can spot some obvious programming mistakes.
  • Programs written in a high-level language tend to be shorter than equivalent programs written in machine language.

Another advantage of using a high-level level language is that the same program can be compiled to many different machine languages and, hence, be brought to run on many different machines.

Basics of Compiler Design: Anniversary Edition

by Torben Ægidius Mogensen (PDF) – 319 pages

Basics of Compiler Design: Anniversary Edition  by Torben Ægidius Mogensen

Related Posts

57 Computer History Videos, Documentaries and Ebooks

57 Computer History Videos, Documentaries and Ebooks

Computing is the bedrock technology that fuels the homes of billions of people around the world. It offers endless possibilities for producing, sharing, and saving information. In this article, a list originally maintained by Thomas Watson, recompiled and cleaned, takes a look at some of the most important innovations in computing history. It covers information from as early as 1953, right down to 2016, in various forms of folklores, recordings, documentaries, interviews, lectures and movies.

136 Free Scientific Articles, Thesis and Reports on Deep Learning for Music

136 Free Scientific Articles, Thesis and Reports on Deep Learning for Music

Over the last several years, a new area of research called deep learning has taken the machine learning community by storm, delivering very promising results in all areas of speech and image recognition. However, one missing link is the lack of an accessible and easy-to-use open-source deep learning library for the music and/or audio research community. In this post we will introduce you to scientific articles, thesis and reports that use deep learning approaches applied to music. The documents are generally in PDF formats, sorted by years and paired with source codes if they’re available.

181 Articles, Websites and Resources about Diversity and Inclusion in Technology

181 Articles, Websites and Resources about Diversity and Inclusion in Technology

This collection includes postings, articles, talks, actionable tools, conferences, social media advocates, and other resources on diversity, specifically diversity in technology. The list’s goal is to provide quick access to diversity information to tech companies and communities that want to do more in their everyday actions to make the tech industry a more inclusive place, as well as to individuals who want to learn more about topics related to diversity and equity in the tech field.