Why are C and C ++ procedural languages
Overview of different programming languages
If you want to learn programming, you not only have to decide on a project, but also on a suitable programming language. Although you can of course switch languages at any time during your studies, you should focus on one language for the time being in order to better understand the basic concepts of programming. The more experience you have then, the easier it will be to switch between languages. The only question is: which language is best suited when?
Basics of programming languages
Programming languages are basically just formal languages to formulate data structures and algorithms. Accordingly, all modern programming languages consist of more or less the same basic building blocks, namely input and output, variables, functions or methods, objects, commands, operators such as + and– and control flow elements, i.e. modules that control how the code is executed at the end. Control flow elements includeIf-Instructions (decision blocks) andFor- orWhile-Loops (repetitive blocks). Comments are also allowed in almost all languages. At Wikipedia alone, however, there are more than 350 different programming languages with different functional ranges, areas of application and language peculiarities. In turn, only a handful of these languages are widely used or suitable for entry-level users.
Differences and classification of programming languages
The superficial differences between the individual languages are mainly in thesyntax, i.e. the set of rules according to which the language modules are put together. Further aspects according to which programming languages can be differentiated are the paradigm or the programming style that the programming language specifies, the generation to which it belongs, its main area of application, its scope and its difficulty.
The programming paradigms
An important consideration in classifying programming languages is the programming pattern, tooparadigmcalled, which dictates the language. A distinction is made between thatimperative anddeclarative / predicativeParadigm. In an imperative language, the programmer describes a way in which the algorithm solves a problem. Values are assigned to variables and instruction blocks are defined, i.e. successive commands are formulated. This paradigm includes, for example, C, C ++, and Java.
The imperative paradigm can go further inprocedural andobject-oriented Programming can be divided. With procedural programming, a subtask is simply solved by various subroutines and functions, with object-oriented programming, on the other hand, the logic or functionality is based on objects that have a state and methods.
Declarative languages in which the developer only describes the desired final state are younger than imperative languages. He says what should happen, but not how. A good example of this is SQL, even if it is not explicitly a programming language, but simply a data query language. The developer gives in oneStatement (Command) which properties the queried values from the database should have. The developer does not need to know how exactly the values are then selected by the program or how the algorithm works.
The generations of programming languages
There are a total of five generations of programming languages that build on one another. To the first generation belong theMachine languagesthat are encoded in binary or hexadecimal and therefore almost illegible, but are essential for the code to work. The second generation areAssembly languageswhich are a little more readable by using abbreviations for the binary commands. The third generation will then be more interesting for today's development: These are imperative or problem-oriented languages. They are also known as higher programming languagesthat are more or less human-readable because they are based on the English language. C ++ and Java are among other things representatives of this generation. The languages must be executed before they can be executedcompiled, i.e. translated into machine code.
The fourth generation are application-related, non-procedural languages that have a higher level of abstraction. As just explained using the SQL language, the “how” no longer has to be defined in the form of the exact sequence of steps of the algorithm, but only the “what”. Fifth generation languages ultimately allow entire facts to be described and are mainly used in the field of artificial intelligence.
Programming or scripting language?
Compiler and interpreter
As already mentioned, source code has to be translated for the computer. There are two ways of doing this: Either, the code is generated by ainterpreter translates line by line during execution at runtime, or the code is translated once by aCompiler converted to an executable file. Script languages such as Python often only use one interpreter, while C and C ++ are examples of pure compiler languages.
Both variants have their advantages and disadvantages: Due to the direct translation of the code by the interpreter, the program can run on different computing architectures. A compiler has to completely recreate the program for each target architecture and also for each code change, so that the initial effort is higher. On the other hand, interpreter languages are significantly slower at runtime, because repetitive program parts, for example, have to be recompiled over and over again, which is not necessary with a fully compiled file.
To combine the advantages and disadvantages of both approaches, there is JIT (Just-In-Time) compilation, which is used by Java or C #, for example. Frequently repetitive program parts, which make up a large part of the speed, are compiled into hardware-independent bytecode in advance. Otherwise, however, the translation takes place at runtime. This makes it possible to maintain the portability and debugging options of an interpreter while increasing performance at the same time.
The most popular programming languages
Most of the popular languages that are widely used in practice follow the imperative paradigm. This means that the developer specifies what the program should do and how. Modern languages are also often designed to be object-oriented, but also support procedural programming, in which problems are solved without objects and classes.
Java is one of the best known and most popular programming languages. One of the greatest advantages of Java is its wide range of uses. The language is platform-independent, which means that it runs on the Linux and MacOS operating systems just as it does on Windows. At the same time, it supports the connection to various databases and offers tools for mobile development, cloud computing and apps. Java is an imperative language and the basics are quite easy to learn - although the level of difficulty can of course be expanded as desired due to the sheer number of options. Above all, anyone who also wants to program professionally should deal with Java, because the language is used in many companies.
This book is recommended for those who want to learn Java.
C is one of the oldest programming languages and an imperative, hardware-related language. It is the basis for many operating systems and accordingly enables system calls to be made directly to the respective operating system. C is used for both system and application development. The language is rather difficult to learn, but it allows you to develop a deeper understanding of how operating systems and computers work.
C ++ is the further development of C, especially with regard to object-oriented programming and is used for hardware-related development. The language is used where you want to manipulate memory yourself or where performance is important - among others at Google, Facebook and Apple. However, C ++ is very difficult to learn and rather unsuitable for beginners who want to understand and apply basic concepts first.
This book is recommended for those who want to learn C ++.
C # (C-Sharp)
C # belongs to the .NET framework, a software platform for application development from Microsoft, and is therefore relevant for everything that has to do with Windows. It is now possible to develop C # platform-independently for Linux and Apple devices. The programming language is imperative and has syntactic similarities to Java and C. In addition, it is extensive and, like Java, is often used in companies. C # is also interesting for game development because the Unity Engine, a runtime and development environment for developing 3D computer games, works with C #.
This book is recommended for those who want to learn C #.
VB (Visual Basic)
The Visual Basic (VB) language is available in two variants, both imperative and object-oriented and with a similar syntax, but otherwise not related to one another: Visual Basic Classic and Visual Basic .NET. VB Classic or VB 6 and its offshoots are old programming languages, the main advantage of which was the simpler syntax compared to C and C ++. Nowadays the language has little relevance except in Alt-Code. VB.NET, on the other hand, is a Microsoft development that is also being developed in the aforementioned .NET framework. While VB.NET is more modern than VB Classic, the language has fewer features than C #. So if you want to work with the .NET framework, you should start directly with C #.
As already mentioned, Python is a scripting language that is basically universally applicable. The language supports procedural programming more than the two more object-oriented languages Java and C #. That is why Python is often used as an entry language and to explain basic programming concepts. Python has a large number of external libraries with functions that can be integrated into a program. Therefore, the language is often used in a scientific context. It takes a bit of getting used to the fact that the language has some syntactic peculiarities: For example, the program code is not structured with brackets, as in most other languages, but with indentations.
This book is recommended for those who want to learn Python.
Programming languages for web applications
This book is recommended for those who want to learn PHP.
The Ruby language is fundamentally object-oriented and, like Python, can be used for various applications. The language is best known, however, through the Ruby on Rails web framework. AFramework is a program framework that simplifies the creation of certain types of software, such as web applications in this case. Ruby is not quite as widespread as other languages, but it is comparatively easy to learn and, thanks to the web framework, is particularly suitable for beginners.
Declarative programming languages
The languages mentioned so far all follow the imperative paradigm. Most declarative languages are rather difficult to learn for beginners because they do not seem intuitive at first glance. Examples of these languages are Haskell and Prolog. Both languages are particularly used in science when it comes to the exact mapping of mathematical algorithms, logical facts and technical relationships.
- What shoes are these people wearing
- Is the AUD overvalued
- What are the 6 Recently Developed Technologies
- Is Ron Maimon narcissistic
- There is a new Sci Hub website
- Which preposition should be provided
- How much Ritalin would cause death from overdose
- Will the universe end today
- How many children did Frank Sinatra have
- What video game revolutionized gaming today?
- How does MS Excel work
- Does the existence of God justify religion
- How does medium monetize
- What if Allah doesn't exist
- Which flower starts with the letters LO
- Psychopaths have low levels of dopamine
- How is Gordon Ramsay's MasterClass
- What can be measured in kilometers
- Why did people hate Alexander Hamilton
- How can dogs see in the dark
- Who was the best baseball shortstop ever
- Does genetics affect weight
- How do I change my face shape
- Why narcissists are so happy with the text