# Exercise 6

For this exercise, put all of your answers in a plain text file exer6.txt.

## Language Description #1

Consider the C++ programming language. (If you don't have experience with C++, feel free to use Java or something else for this question.) In your exer6.txt, indicate how C++ can be described with respect to each of these concepts we have discussed:

• Indicate which version of the language you're talking about: C++11, C++17 (or Java 9, 10 etc).
• Overall programming paradigm (imperative, functional, object oriented, logic programming, etc.).
• Compiled, interpreted, bytecode compiled, JIT compiled (for the most common tools: either GCC or Clang).
• Static or dynamic types. Static or dynamic binding.
• Strong or weak typing.
• Manual memory management or garbage collected (and garbage collection algorithm).
• Has first-class functions? Has closures?
• What support for concurrent/parallel programming is available?

You don't have to write much about each one: just indicate which terms apply, and add any description/clarification you think is necessary. If you can't find information about one of these items, what can you guess or infer based on your knowledge of the language?

## Language Description #2

Pick another language you have experience with (other than Haskell). Repeat the first question for that language.

## Submitting

Submit your files through CourSys for Exercise 6.

Updated Mon Oct. 12 2020, 19:38 by ggbaker.