432
stand the types of programming languages. Next, we will introduce a brief introduction to programming languages.
Complexity of Problems in FEW Nexus: Without knowing the specifics of the
problems, it is hard to come to a general conclusion about the computational complexity of FEW nexus problems. However, even when the computational complexity is not an issue, the datasets in FEW nexus are large, and the complex relationships
and dependencies between different FEW datasets may cause the problem to be
computationally intensive. Especially, when the datasets are large, the space (memory) complexity will play an important role in determining how to approach the
problem. As a rule of thumb, the building blocks of the problem should be analyzed
to see whether the user needs a high-performance computing platform to handle the
computations. In addition, the user may use an approximation instead of an exact
solution to reduce the computational cost.
16.2.3 Programming Languages
Modern programming languages consist of a set of vocabulary and rules that
instruct a computer to perform some tasks. They are specialized to ease the programming and implementation of algorithms for the programmers (Krishnamurthi
2012). In other words, it translates the human-readable instructions to machinereadable ones. Although there are many ways to classify them, a simple classification will be high-level and low-level representing the abstraction level of the
language (Martin-Löf 1982).
Low-level languages are often considered faster than higher level languages
because the overhead of translation between different abstraction levels reduces the
speed of high-level languages. For example, machine code can be considered as the
lowest level that can be processed directly by a computer without a need for translation or interpretation (Krishnamurthi 2012). On the downside, low-level language
codes are extremely hard to understand and debug causing them to be not as prevalent around the scientific community. Moreover, lower level programming languages require a programmer to keep track of stacks and memory locations that is
often hard and error-prone. Thus, many of the programming languages that the
reader may encounter fall under the high-level programming language category.
High-level programming languages can also roughly be divided into two categories. Compiled programming languages, as the name suggests, are needed to be
translated into machine-readable code before running. Once compiled, the program
can run directly on the target machine without any intervention (Friedman et al.
2001; Mitchell 1996). C and C++ are examples of compiled programming languages.
Interpreted programming languages such as Python, are compiled on the fly, meaning that they are not directly run by the target machine, but another program reads
and executes the original source code. Interpreted programming codes are first converted to an intermediate code, then processed by another interpreter that converts
this code to machine instructions (Krishnamurthi 2012).
E. Eftelioglu and S. Shekhar
Précédent

- 438/686

Suivant