• ARM assembler in Raspberry Pi – Chapter 27

    We saw in the previous chapter what is the process required to build a program from different compilation units. This process happened before we obtained the final program. The question is, can this process happen when the program runs? This is, is it possible to dynamically link a program?

    Read on →

  • Whose is this optimization?

    Today we will toy around a very simple optimization in clang and discuss a bit about separation of concerns when optimizing code.

    Read on →

  • Exploring AArch64 assembler – Chapter 7

    In the previous installment of this series we saw how to alter the sequencing of our programs. Today we will see how we can reuse instructions by means of branches. Let's talk about functions.

    Read on →

  • Compilation of array expressions in Fortran

    As I stated in my previous post, Fortran 90 improved the array capabilities of Fortran. Today we will discuss what are the challenges when compiling array expressions.

    Read on →

  • Introduction to the gfortran array descriptor

    With the approval of Fortran 90, its array capabilities were largely improved. While still far from languages like APL, the extra functionality required a rethinking of the concept array in Fortran. This led to the need for array descriptors in the language.

    Read on →