Explore the evolution of C– – an intermediate language designed for compiler and language research. Delve into its origins, syntax, and the significance it holds in the realm of programming languages and compiler development.
Category: Compilers
Rebuttal to Eric Normand’s Article: “How is Haskell Faster than C?”
Delve into the nuanced debate between Haskell and C programming languages. This article dissects the claims about Haskell’s speed superiority over C, emphasizing the importance of well-crafted code and developer expertise in determining programming efficiency. Discover the complex interplay of factors that influence the performance of these languages in real-world applications.
Continue Reading “Rebuttal to Eric Normand’s Article: “How is Haskell Faster than C?””
Introduction to Compilers
Introduction: Welcome to our series on compiler development using Python! In this series of articles, we will explore the fundamentals of grammars and their role in defining the syntax of programming languages. We’ll also discuss different notation systems used to express grammars, such as BNF, EBNF, and PEG, and their relation to lexical analysis. Understanding
Speeding Up Python Apps With CFFI
Calling C/C++ Code from Python Introduction Python is a powerful and versatile programming language, but one of its weaknesses is that it can be slow compared to other languages like C or C++. However, Python can use C/C++ code to speed up the application or simply make use of functionality not available in Python. By
Building Machines In Code – Part 9
Tooling for the Tiny-T When we completed the console, last installment, I had said I was unsure what I would cover next. I’m really wanting to begin implementing our audio device, but I felt that adding a GUI for the Tiny-T system was a target much more achievable in the limited time I had. However,
Building Machines In Code – Part 8
Adding a Crude Console Last time, we left off with a working computer system using the Tiny-T processor. I told you that we would add a very crude terminal to the system this time. The terminal I’ll present today is barely a terminal. It won’t have any special functions, text scrolling, or any other features
Building Machines In Code – Part 7
Today’s Project NOTICE: Today’s Code will only work under Python 3.10 and later. In this episode, we will build a new system using a processor with Von Neumann Architecture. We will also be splitting our system into various files and classes to organize our system better. The Memory will no longer be part of the
Building Machines In Code – Part 6
Last issue we built a simple assembler for our TIny-P processor emulator. In this installment, we will build a loader. But what is a loader? Loaders are small programs that load other programs into system memory and prepare them for execution. Most loaders are part of an Operating System however, in the embedded world, there
Building Machines In Code – Part 5
Tooling Hardware and software developers are tool makers by trade. Just like a machinist, software developers often need to develop their own tools for the job at hand. Sometimes these tools are simple scripts to automate a boring, or complicated task, or perhaps, a tool to fill a yet unfilled niche. Whatever the reason, tool
Implementing Stack Oriented Languages – Part 4
Strings and Variable So far we’ve added lots of stack operations and a couple I/O routines with the KEY and EMIT keywords. At the moment if we wanted to write a simple “Hello World” application we would need to place each character on the stack and pop them off using the EMIT keyword. This is
Continue Reading “Implementing Stack Oriented Languages – Part 4”
Recent Comments