Software - Recipe for Computing

Early Programming: The Use of Punch Cards

  • In the 1950s, punch cards were employed by computer scientists to sort programs.

  • Each punch card represented bits that the CPU would read to perform instructions.

  • A typical set of instructions in binary code could include actions like:

    • Grab input data from memory location.

    • Perform calculations using the input data.

    • Store output data back into memory.

Transition from Punch Cards to Assembly Language

  • Storing programs on punch cards was cumbersome and required managing numerous stacks of cards.

  • A more efficient solution was needed for sending instructions to machines, leading to the creation of Assembly Language.

  • Assembly language allowed the use of more human-readable instructions compiled into machine code, enhancing ease of programming.

  • Example of assembly instructions:

    • Take integer from register one.

    • Take integer from register two.

    • Add integers from both registers and output result to register four.

Limitations of Assembly Language

  • Although assembly language was an improvement over binary code, it still resembled machine code closely and was not entirely user-friendly.

  • Programs written in assembly were CPU-specific, meaning they could only run on the designated CPU or its family.

Introduction of Compiled Programming Languages

  • To address the limitations of assembly language, compiled programming languages were introduced.

  • These languages allow programmers to write human-readable instructions that a compiler converts into machine code.

  • Admiral Grace Hopper was instrumental in the invention of compilers, which significantly simplified programming.

  • Example of compiled code similarity:

    • "If written in a human-friendly manner, the compiled output still corresponds directly to machine instructions."

Emergence of Scripting Languages

  • Over the years, many programming languages have been developed to simplify CPU commands into easier instructions.

  • Interpreted languages emerged, which differ from compiled languages.

  • Interpreted languages do not compile ahead of time; instead, they are executed directly by an interpreter running a script of code, translating it into CPU instructions in real-time.

Role of Programming and Scripting in IT Support

  • Learning to write code, especially using scripts, can enhance the capability of an IT support specialist.

  • Scripting helps users automate tasks, allowing problems to be addressed once and the solution reused efficiently.

  • Overall, programming languages play a crucial role in designing programs that execute various tasks.