Prof. Reis - Programming Languages

Pre-lecture research questions

Why did we move from punch cards to programming languages? What does that tell you about the purpose of programming languages?

Magnetic tape was being introduced in the 1960s. This was seen as a better data storage medium compared to punch cards since it was cheaper, and the newer and more affordable (at the time) computers were smaller which made punch cards even more meaningless since those newer computers could not use them. Since punch cards were used to store the computations, a computer was meant to carry out, we can say that programming languages serve a similar purpose of storing instructions that a more advanced computer would need to perform those computations.

There are hundreds of different programming languages out there. Why do you think we need so many?

To make writing instructions for machines easier. Since computers can only process and execute instructions in binary, we would struggle if we only used binary to make our programs as we are restricted to using 0 and 1 to write our instructions.

To adapt to new technologies. As computers get more advanced, programming languages evolve to be more human-readable than before and to be usable on the new technology.

What are some drawbacks of a programming language you use? How would you like it to be different? Think of specific examples.

I use Python and I find that I do not like it when a program crashes as soon as an error is encountered. It is useful for debugging but I would not be able to test if any unrelated code that appears later in the program works properly until I fix that initial bug. I would prefer it if Python had the option to choose between logging the error during execution as opposed to crashing the program and reporting the logged errors after the entire program is executed.

If you were going to create a new programming language, how would you start? What do you need to define?

I would start by defining the data types my language would support (like strings, integers, real numbers, etc.). Then I would define the different types of selection and iteration constructs I would use like “if” statements and loops. Once I do that I would consider special characters that would perform special functions like “\n” for line separation in Python.

Sources

Source 1

Source 2

Source 3