Learn this to learn any language - Part 1

Unraveling the Foundations: A Primer on Computer Science Constructs

ยท

2 min read

Learn this to learn any language - Part 1

Delve into the fundamental constructs of computer science, breaking down complex terminology and exploring the essence of Von Neumann Architecture. This article aims to bridge the gap between conventional math and the unique logic of computer science.


Definitions

Before moving on, we should define some terms to avoid confusion. This series shall assume...

No axiomatization without insight

--Christopher Strachey

Ignore Math

Stupid Math GIF - Stupid Math Four GIFs

Computer science is like calculus and non-Euclidean geometry; to understand it, one should break and assume rules that violate conventional math. Upcoming terms and customs might interfere with the math brain, but set it aside and learn computer science.

Von Neumann Architecture

Above all, this is the foundation of any computer we will ever refer to. Understanding this architecture is crucial for comprehending the underlying methodologies and why things are the way they are.

von neumann arch


Defining Constructs

To explain the language in written form, we should be on the same page when I say some terms, so let's define a few ground rules. The following line in its entirety is called an expression:

x = 2003

A program is made of expressions ranging from simple, as above, and as moderately complex as below, which encapsulates many sub-units of expressions as well...

x = [i for i in range(2003) if i % 2 == 0]

The purpose of an expression is to operate with memory in [Von Neumann Architecture](ppr-fcpl-0-defs#Von Neumann Architecture),

...so in general, any expression can be reduced to a form of L-val = R-val. Here:

  • L-val is a form of an address or location of a memory cell

  • R-val is a form of a value to be stored in the memory cell referenced by the corresponding L-val

  • = operand indicates the operation, assignment. Not essentially math's equal

It is optional to have either L-val or R-val.

In each such case, it can be thought of as:

  • throw-away value

  • declaration (essentially reservation in advance) for a value of interest

This is it. Now all we have to do is to learn how to get the desired R-val and how to indicate the CPU what our desired L-val is.

next, we will look at getting desired R-val

See you in the next article, till then, this is me, TheBE, signing off ๐Ÿ‘‹.

ย