Programming Languages

Cards (6)

  • High Level Programming Languages:
    • Visual Basic, C++, C#, Python, Luau(my goat), FORTRAN, etc.
    • High Level Source Code must be translated before it is able to be executed by a computer (interpretation and compilation both work).
    • The particular implementation of a programming language determines whether it can be interpreted, compiled or both)
    • Closer to English than lower level languages, making them easier to learn and program with.
  • Low Level Programming Languages:
    • Assembly code, etc.
    • Still needs to be translated.
    • Harder to understand as a human but its usually more efficient than HL programming languages (memory wise).
    • Assemblers are required to translate assembly language.
  • Turing Complete:
    • Most programming paradigms are said to be Turing complete.
    • This means that the languages following those paradigms can solve all problems computers are able to solve.
  • Imperative and Declarative Languages:
    • Imperative use statements that change a programs state in the form of a sequence, selection, iteration, etc. They consist of commands for a computer to perform and focus on describing HOW a program operates.
    • Imperative paradigms: Object Oriented, Procedural.
    • Declarative languages focus on WHAT the program should accomplish - though they aren't on the spec so who cares.
    • Declarative paradigms: Logical, Functional.
  • Procedural Programming:
    • A type of imperative programming paradigm where a program is built from a collection of subroutines(procedures, functions, etc).
    • They are extremely common and typically viewed as the easiest to learn.
    • Sometimes, people refer to them as "imperative".
    • Procedural languages focus on giving the computer a sequential and ordered set of instructions detailing exactly what they need to do.
    • Sequence, Selection, Iteration. Code is developed in a modular fashion, using procedures and functions. C#, visual basic and Python are all examples of procedural.
  • Object Oriented Programming:
    • A modern extension of the imperative approach that focuses on a more modular approach to programming. It involves objects, classes, methods and focuses on modelling objects/concepts which exist in real life.