← Back to Home
02 / RESEARCH UPDATES

Foundations of Programming Languages

Q1. From Punch Cards to Programming Languages

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

Problems with Punch Cards
  • Huge Physical Work: Punch cards were time consuming. Punching a bunch of holes every time is physically very taxing.
  • High Error Chances: The act of punching holes comes with a major demerit of high error rates.
  • Hardware: Early systems depended heavily on hardware, which calls for deep machine-specific wiring.
Reasons for Shifting to Programming
  • Cost Effective: Programming partially eliminates the high amount of hardware needed, making it a cost-efficient method.
  • A Bridge: Programming serves as a perfect medium for humans to convert their logic into readable text.
  • Solving Problems: Instead of being immersed in the hardware side, people can now solely focus on solving real-world issues.

Q2. Why So Many Programming Languages?

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

Just like how different job roles in the same department require us to do different tasks, different programming languages fulfil various necessities. Each programming language is unique on its own and has unique features. Some languages focus on speed and memory, which are important for coding video games and heavy systems.

Every programming language has its own design, used for different roles and jobs.

Python High-level language — hides complex hardware details
C / C++ Low-level language — connects directly to computer memory and processors

Q3. Drawbacks of a Language I Use

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

Different languages contain their own set of drawbacks. However, a prominent one would be those of Python. Slow speed and interpretation make Python comparatively slower than C/C++. Runtime errors are also a specific demerit of Python.

I would have preferred Python to be quicker in its execution — the speed improvement would certainly be a huge benefit. Code execution also takes up a lot of time.

Q4. Designing a New Programming Language

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

I would most definitely try to create a language with minimum errors and high speed. Even if issues were to be there, I would mention them or define them well. I would try to incorporate a wide range of features to make it user friendly. The restrictions would definitely need to be defined.

Extra Links for Reference

Links that I used