A low-level programming language is a programming language that provides little or no abstraction from a computer's instruction set architecture—commands or functions in the language map closely to processor instructions.
Generally this refers to either machine code or assembly language. The word "low" refers to the small or nonexistent amount of abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware". Programs written in low-level languages tend to be relatively non-portable.
I've recently began my software engineering career at ALX, and as part of the requirements, we were prompted to learn C programming language, over the next few months I would be applying the knowledge learnt to solving basic tasks in C language.
Some of the tracks where this knowledge will be applied covers the following;
- Compilation
- Commenting code and following a coding style standard (Betty style)
- Variables, types, operators, expressions, loops, nested loops
- Conditional statements
- Functions
- Pre-processor, macros, header files, pointers, double pointers, function pointers, pointer arithmetic
- Makefiles
- Sorting and search algorithms and more!
- Allowed editors:
vi
,vim
,emacs
- Compiler;
- Ubuntu 20.04 LTS using gcc.
- Using the options
-Wall -Werror -Wextra -pedantic -std=gnu89
- Coding style;
- Betty Style.
- C - Hello, World
- C - Variables, if, else, while
- C - Functions, nested_loops
- C - Debugging
- C - More functions, more nested loops
- C - Pointers, arrays and strings
- C - More pointers, arrays and strings
- C - Even more pointers, arrays and Strings
- C - Recursion
- C - Static Libraries
- C - argc, argv
- C - Malloc, Free
- C - More malloc, Free
- C - Preprocessor
- C - Function pointers
- C - Variadic functions
- C - Singly linked lists
- C - More singly linked lists
- C - Bit manipulation
- C - File I/O
- C - Doubly linked list
- C - Dynamic libraries
- C - Hash Tables
- C - Makefiles
Other collaborators are acknowledged within each project.