Programming Languages

Photo by Luis Gomes: https://www.pexels.com/photo/close-up-photo-of-programming-of-codes-546819/

Computer languages provide computer processor units (CPUs) with the instructions to execute programs while helping simplify complex code. According to Vahid and Lysecky (2019), “the most basic of which is called machine language and are instructions comprised of 0s and 1s which a CPU understands” (Section 2.8, para. 2). Although a CPU can understand the code, it is difficult for humans to read. An assembler program helps to make reading machine code easier by converting basic and easily read instructions to bits creating a more efficient coding or assembly language. A high-level language such as Python will use variables stored in specific memory locations and an additional program called a compiler that converts the variables into assembly and machine language. High-level programming languages such as Python and Scratch use variables to make the computer language easier to learn and write. In contrast, assembly and machine language are harder to understand and create without using an assembler or compiler program. An analysis of machine, assembly and high-level programming languages indicates that high-level programming languages such as Python or Scratch are the most popular because they are not difficult to learn or implement compared to more binary or rudimentary forms.

Building a program using Scratch is straightforward but requires some time to get comfortable constructing lines of code using block-based coding. The preprogrammed blocks of code are easy to arrange and test but need additional tutorials to master, making learning about programming languages fun and informal. According to Hsu and Gainsburg (2021), “using a block-based structure dramatically reduces the amount of syntax, allowing users to understand broader programming concepts” (p. 818). Without the Block-based language (BBL), writing a program like the Space Mission in Scratch would have required more time, effort, and knowledge. In addition, there are some difficulties to overcome when using Scratch, such as knowing how to switch between Sprites or characters, which can be overcome by watching tutorials that instruct a user to broadcast and receive messages that teach the program to change between lines of code. Furthermore, Scratch can provide a positive experience for beginners who gain insights into how different types of code interact with each other and how problems can be resolved by modifying and testing different arrangements of blocks to create fun and enjoyable programs like the Space Mission I made below.

When comparing Scratch to other programming languages like a machine, assembler, and high-level programming, Scratch was more intuitive and took less time to learn, resulting in more successful applications and a better understanding of how the code was functioning and performing. Machine language was difficult to understand and program because each instruction was a set of 0s or 1s. Nerlove (2004) explains that “machine language is clumsy and time-consuming and is why it was quickly replaced by assembler programs that established a one-to-one correspondence between machine code and easily remembered words” (p. 190). The assembler coding activities were less complex than the machine language but still far more challenging than Scratch. The assembly inputs were shorter and easier to read, resulting in faster instruction input. Two inputs could be added together quickly with the sum as the output before the instructions were stopped. When comparing a high-level language like Python to Scratch, Python was still more challenging because instead of blocks of code, the code needed to be written out but was still easier to understand than both machine and assembly language. Python was also more like Scratch because both could use loops which can run instructions several times, but Scratch was still easier to use because there was no code to write.

Each programming language has unique advantages and disadvantages, which can affect its effectiveness when applied to different scenarios. Machine code is most effective at feeding instructions to a computer’s CPU because it is the only language it understands. All programs run in this language, but this doesn’t mean it is easy to write or understand. Assembly language is most effective at translating readable code into machine code and is also effective when used to reverse engineer programs and debug issues. According to Pal (2022), “assembly language is bare and transparent, making it very helpful for algorithm analysis, consisting of semantics and flow of control” (Para. 6). On the other hand, high-level programming languages offer users more usability, like Python, which is most effective at building software, and websites and automating tasks. Python can also analyze and visualize data, making it more robust than machine or assembly languages. High-level code is the most popular in programming languages because it is much easier to write and read. Without the development of machine and assembly languages, high-level programming could not exist.

Compared to other programming languages, high-level coding like Scratch and Python are the most preferred due to their ease of use, as well as their wide range of applications, as opposed to machine and assembly code, which can be challenging to read. Machine code is the only language a computer can understand, which makes coding in this language difficult without an assembler or compiler program to interpret the code. High-level programming takes this a step further by introducing recognizable variables which allow users to create complex programs or block-based animations. Block-based languages help beginners to see the fun and potential of coding without overwhelming them with complicated code or concepts, which may make learning languages like Python easier. These programming languages can be effective at a specific task or take on various roles that can automate tasks or debug problems, making them valuable and highly desirable skills. Learning programming languages can be simple and enjoyable, especially when starting with the fundamentals and programs like Scratch or Python. 



References

Hsu, W.-C., & Gainsburg, J. (2021). Hybrid and Non-Hybrid Block-Based Programming Languages in an Introductory College Computer-Science Course. Journal of Educational Computing Research, 59(5), 817–8. https://search.ebscohost.com/login.aspx?direct=true&AuthType=shib&db=eric&AN=EJ1299771&site=eds-live&scope=site.

Nerlove, M. (2004). Programming languages: A short history for economists. Journal of Economic & Social Measurement, 29(1–3), 189–203. https://doi.org/10.3233/JEM-2004-0229

Pal, K. (2022, September 27). Why is learning assembly language still important? Techopedia. https://www.techopedia.com/why-is-learning-assembly-language-still-important/7/32268

Vahid, F., & Lysecky, S. (2019). Fundamentals of information technology & literacy. zyBooks, a Wiley brand. https://learn.zybooks.com/zybook/TEC101:_Fundamentals_of_Information_Technology_&_Literacy

Comments