top of page
Logo for the Qwiz5 series by Qwiz Quizbowl Camp, written to help quiz bowl teams power more tossups!

Want the newest Qwiz5 sent to your inbox each week?

Writer's pictureQwiz Bowl

Qwiz5 Quizbowl Essentials - Programming Languages

Programming Languages have existed in one form or another since the 1940s. In the simplest form, they are a way of setting up structured instructions for a computer to follow in order to achieve a particular output. Such languages are generally translated into binary by compilers, and then executed in this binary form by the computer. The earliest programming language was likely Plankalkül, which was created between 1943 and 1945, but not implemented until decades later. Today, there are roughly 700 programming languages in existence.

Computer programming language.  Part of the Qwiz5 series by Qwiz Quizbowl Camp, written to help quiz bowl teams power more tossups!

By analyzing questions, you can see patterns emerge, patterns that will help you answer questions. Qwiz5 is all about those patterns. In each installment of Qwiz5, we take an answer line and look at five of its most common clues. Here we explore five clues that will help you answer a tossup on early programming languages.


LAMBDA CALCULUS

Since much of programming is calculation-based, it’s probably not surprising that the basis of many computer languages are essentially based on lambda calculus. Lambda calculus, originally developed by a mathematician named Alonzo Church in the 1930s, is a logic system of mathematics that constructs terms through creation of variables and applying functions to those variables. Pure programming languages are generally based in lambda calculus, and have no side effects. If any expression in a language can be replaced with its actual value without causing any change in the meaning of the program, it is a pure language. Lambda calculus can also be used to simulate any Turing Machine.


PYTHON

This programming language, notable for its use of whitespace to delineate blocks of code, is not named for a snake, but rather for inventor Guido van Rossum’s fondness for the British comedy group Monty Python; references to the show, including examples using spam and eggs as variables, are frequent within documentation of the language. It includes a core philosophy known as The Zen of Python, which states “simple is better than complex” and “explicit is better than implicit”.


HASKELL

A specific example of a pure programming language is Haskell, named for Haskell Curry, a mathematician who is considered the founder of combinatory logic. Combinatory logic is a system similar to lambda calculus in that it is the root of multiple functional programming languages. Functional programming specifically produces output values for a function that are consistent across the program - given the same argument entered into the function, the same output will always result anywhere in the program it is used.


OBJECT-ORIENTED

Object-Oriented Programming (sometimes denoted as OOP) is programming that is based on the idea of building “objects”, then causing these objects to interact with one another via code. Objects contain data, including fields and methods. Methods modify the fields for the object they are associated with. Many OOP languages are class-based, which is a way of identifying multiple objects with shared characteristics. Functional programming is generally considered to be the most common alternative to OOP.


JAVA

This language produced by Sun Microsystems is one of the most commonly used, in part because programs in this language run as applets as a virtual machine within another system, and as such can run on nearly any platform. This is accomplished by converting all written code to bytecode for the virtual machine to process. It is notable for use of an automatic garbage collector to reduce memory demands, and was initially called Oak. Don’t confuse Java and JavaScript, which is run exclusively within a browser and does not require the virtual machine.


***

Quizbowl is about learning, not rote memorization, so we encourage you to use this as a springboard for further reading rather than as an endpoint. Here are a few things to check out:


* Would you like to know more about some of the early programming languages? Wikipedia has a very interesting overview of the development of programming, complete with a large list of prominent figures in the field. It’s a great place to start if you want to learn about languages like COBOL and FORTRAN, which are still in (limited) use today.


* Turing Machines are frequently referenced in science fiction, but if you are a bit unclear on what exactly they are, Medium has a pretty good explanation here.


* Are you interested in learning how to program, but have no idea where to begin? Why not check out Code.org, home of the “Hour of Code” project. There are resources to help teach you the basics, and lots of examples to check out!


* Feel like looking ahead and not behind? The future of computing may be quantum computers, and this article in American Scientist gives you an overview of the questions and possibilities in this new field, or you could listen to Dr. Talia Gershon from IBM explain the idea in this video:

 

Want to learn a ton more quizbowl information, compete on thousands of questions and generally have a blast this summer? Come Qwiz with us!


Questions? Have a great idea for a future Qwiz5? We'd love to hear from you! Email us at hello@qwizbowl.com


Love this Qwiz5? Don’t forget to subscribe for updates and share this with your friends through the links below!

Comments


bottom of page