Problem Set B
1
.
Research how much support and how many APIs are available for cutting-edge technologies for the most popular languages of C#, C++/C, Java, and Python.
2
.
You’re the lead software engineer for a team that has two projects on going with the same set of user capability requirements. Since the requirements are the same, you want to find a common solution and develop at least a common module. The client for Project 1 has agreed to a REST API as the standard to interface to the application, while the client for Project 2 will integrate the software as a static library. Project 2 requires that the software needs to run on both Windows and Linux, and C must be the language of choice. Project 1 only needs to run on Windows and has no language constraints. Research C and the level of support for REST API development. Would C be a good choice for the top layer for Project 1? Would Java be a better solution?
3
.
We have demonstrated that one of C and C++’s features is that you can return a data type and can also use an output parameter to get the output of a function by sending in a pointer to the variable or data structure. Research and explain the pros and cons of using an output parameter by sending in a pointer to the data type.
4
.
Research the concept of garbage collection in programming languages. How do Java and C++ differ in garbage collection?
5
.
Research how arrays are different between C/C++ and Java in terms of memory allocation. How can this impact safety and reliability of the code?
6
.
If functional languages such as C cannot build objects using classes, how can a developer create complex data types? Research how structures are used in functional languages to create data types.
7
.
Write three Java classes using polymorphism where there is one super class and two classes that inherit from the super class.
8
.
Research how compilers optimize code at build time and how this is a configurable setting.