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
At Alx School, there are several tracks to become a full stack software engineer. One of those tracks is the low level programming track which covers the following:
- Compilation
- Commenting code and following a coding style standard
- 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!
-
Ubuntu 14.04 LTS
-
gcc 4.8.4 (-Wall, -Werror, -Wextra, and -pedantic flags)
0x00-hello_world
0x01-variables_if_else_while
0x02-functions_nested_loops
0x03-more_functions_nested_loops
0x04-pointers_arrays_strings
0x05-pointers_arrays_strings
0x06-pointers_arrays_strings
0x07-recursion
0x08-static_libraries
0x09-argc_argv
0x0A-malloc_free
0x0B-more_malloc_free
0x0C-preprocessor
0x0D-structures_typedef
0x0E-function_pointers
0x0F-variadic_functions
0x10-printf ** printf project **
0x11-singly_linked_lists
0x12-more_singly_linked_lists
0x13-bit_manipulation
0x14-file_io
0x15-simple_shell ** C Shell project **
0x16-doubly_linked_lists
0x17-dynamic_libraries
0x18-stacks_queues_lifo_fifo ** Monty ByteCode Interpreter **
0x19-hash_tables
0x1A-sorting_algorithms ** Sorting algorithms project **
0x1B-makefiles **