Magic Qin
  • Home
  • Archive
  • About
  • Category
  • Tag
  • 简体中文

    { programming }

  • Understanding C Language-3: Compilation & Linkng

    2018-03-31 |
    • { programming }
    • { thoughts }
    • { c-language }
    • { compile }
    • { link }
    • { load }
    • { symbol-table }
    • { relocatable-format }
    • { ELF }
    /
    • { skill }
    • { programming }
    • { c-language }

    Intro

    Building upon the previous article, which explained how C language manipulates data through statements, this article continues to adhere to the principle of addressing the “why”. It begins with the end goal in mind, starting from the memory image required by the operating system to execute a program. From there, it works backwards to deduce the tasks that the compilation and linking subsystem must perform to bridge the gap between the source code and the final executable file.

    Read On »
  • Understanding C Language-2: Instruction Execution

    2018-03-24 |
    • { programming }
    • { thoughts }
    • { c-language }
    • { instruction-execution }
    • { imperative-programming }
    • { operator }
    • { operand }
    • { expression }
    • { statement }
    • { control-flow }
    • { function }
    • { calling-convention }
    • { active-record }
    /
    • { skill }
    • { programming }
    • { c-language }

    Introduction

    Last post describes how to model data by variables in C programming. When variables are ready, it’s time to design handy tools to use them.

    Read On »
  • Understanding C Language-1: Memory Object

    2018-03-17 |
    • { programming }
    • { thoughts }
    • { c-language }
    • { memory-object }
    • { memory-data-object }
    • { variable }
    /
    • { skill }
    • { programming }
    • { c-language }

    Motivation

    Many books introduce C language from grammar and practice perspective to teach “how to” and “how to do well”, however, what I desired is understand the reason behind each C-Language element and how they work together.

    It is well-known C is the common ancestor of many modern computer languages called C-Family. Also, most compilers & interpreters of high-level programming languages were written in C. So understanding design concepts of C helps to learn other modern ones.

    This first post introducing memory object to start the journey, enjoy it.

    Read On »
© 2019 - 2025 Arthur Qin
Powered by Hexo, Theme Authored by nameoverflow.