An Introduction to Programming Languages: Simultaneous Learning in Multiple Coding Environments

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

After a short introduction on the history of programming languages, this book provides step-by-step examples that are mirrored in seven programming languages, including C#, C++, Java, JavaScript, PERL, PHP, Python, Ruby, VB, and VBA. This mirrored approach for each of the examples represents the main feature of the book with the goal of gaining a better understanding of the advantages and disadvantages of programming and scripting languages. This approach also allows readers to learn the mechanics of short implementations and the algorithms involved, no matter what technology and programs are used in the future. Based on the growing need for programmers to be proficient across languages, the book is designed in such a way that no prior training or exposure to the programming languages is needed by readers.

Author(s): Paul A. Gagniuc
Series: Synthesis Lectures on Computer Science
Edition: 1
Publisher: Springer
Year: 2023

Language: English
Pages: 325
City: Cham
Tags: Programming Languages; Python; C++; Java; Visual Basic; Java Script; PHP; VBA; Go

Preface
Acknowledgements
Personal Words
Contents
List of Figures
List of Tables
List of Additional Algorithm
1 Historical Notes
1.1 Introduction
1.2 The Ultimate Foundation
1.2.1 Closer to Our Times
1.2.2 Universality at the Crossroads
1.3 On the Recent Origin of Computers
1.3.1 Automatons and the Memory of the Soul
1.3.2 Mechanical Computers
1.3.3 Electronic Computers
1.3.4 American Standard Code for Information Interchange
1.3.5 A Conspiracy for Convergence
1.4 History of Programming Languages
1.4.1 The Making of an Advanced Civilization
1.4.2 The Dark Age of Computer Languages
1.4.3 The Extraordinary Story of ActiveX
1.4.4 Killed on Duty by Friendly Fire
1.4.5 The Browser: Resistance is Futile, You Will be Assimilated
1.5 Conclusions
2 Philosophy and Discussions
2.1 Introduction
2.2 The Entropy of Software
2.2.1 Entropy of Codes and Human Nature
2.2.2 Raw Versus Fine-Grained Entropy
2.2.3 How Does Software Entropy Increase?
2.3 The Operating Systems and Entropy
2.3.1 The Twins
2.3.2 Rejection of Equilibrium
2.3.3 The Third Party Software
2.3.4 Examples of Universality
2.4 Software Updates and Aging
2.5 Universality Supports Self-reflection
2.5.1 The Evolution of Large Brains Versus Entropy
2.6 From Computer Languages to Art and Sports
2.6.1 The Art
2.6.2 The Sport
2.7 Compiled Versus Interpreted
2.7.1 Programming Languages
2.7.2 Scripting Languages
2.7.3 Source Code Encryption
2.7.4 The Executable File
2.7.5 Executable Files and Scripting Languages
2.8 The Unseen and Unspoken
2.8.1 Witch Hunting Shows Weakness
2.8.2 No Secrets for the Emeritus
2.8.3 The War Against the Executable File
2.8.4 We Decide What Product Comes About
2.9 Psychological Warfare
2.9.1 Removal by Threat
2.9.2 Removal by Advertising
2.9.3 Handling of Terms
2.9.4 Battle of Computer Languages
2.9.5 Uniformity Means Death
2.9.6 Modern Does Not Mean Better
2.9.7 Market Share Demands Responsibility
2.10 Human Roles and Dilemmas
2.10.1 The Identity Crisis
2.10.2 Work Environments
2.10.3 Genus: Homo
2.11 Worst Professors Are Those Who Assume
2.12 Conclusions
3 Paradigms and Concepts
3.1 Introduction
3.2 The Story of Programming Paradigms
3.2.1 Imperative Programming
3.2.2 Declarative Programming
3.2.3 The in Between
3.2.4 The Foundation
3.3 Computer Languages Used Here
3.3.1 C#
3.3.2 C++
3.3.3 Java
3.3.4 JavaScript
3.3.5 Perl
3.3.6 PHP
3.3.7 Python
3.3.8 Ruby
3.3.9 Visual Basic
3.4 Classification Can be Misleading
3.4.1 A Critique
3.4.2 Which Computer Language is Better?
3.4.3 The Operating System Versus the Application Makeup
3.4.4 The Virtual Machine: A CPU for Bytecode
3.4.5 Compiled Languages
3.4.6 Interpreted Languages
3.4.7 Just in Time Compilation
3.4.8 Another Critique
3.4.9 A Security Thought Experiment
3.4.10 About Security Privileges
3.5 The Quick Fix
3.6 Conclusions
4 Operators and Expressions
4.1 Introduction
4.2 Operators
4.2.1 Arithmetic Operators
4.2.2 Assignment Operators
4.2.3 Relational Operators
4.2.4 Concatenation Operators
4.2.5 Logical Operators
4.3 Operator Symbols
4.3.1 Power Operator: The Curious Case of Exponentiation
4.3.2 The Modulo Operator
4.3.3 Unitary Operators
4.3.4 The String Operator
4.3.5 The Repetition Operator
4.3.6 The Concatenation Operator
4.3.7 Relational and Logical Operators
4.4 Assignments
4.4.1 Simple Assignments
4.4.2 Aggregate Assignments
4.4.3 Multiple Assignments
4.5 Operator Precedence and Associativity
4.6 Conclusions
5 Data Types and Statements
5.1 Introduction
5.2 Data
5.2.1 Bits and Bytes
5.2.2 Symbol Frequency Matters
5.2.3 The Encoding
5.2.4 A Hypothetical System of Reference
5.2.5 The Bytes of an Alien World
5.3 Data Type
5.3.1 The Curious Case of the String Data Type
5.3.2 Experimental Constructs
5.4 Statements
5.4.1 ASCII Symbols
5.4.2 Unicode Transformation Format
5.4.3 Sentences are Made of Constructs
5.4.4 The Root of Behavior
5.4.5 The End of the Line
5.4.6 Statements and Lines
5.4.7 Multiple Statements and Line Continuation
5.4.8 Recommended Versus Acceptable Statements
5.5 The Source Code
5.5.1 Indentations
5.5.2 Comments
5.6 Conclusions
6 Classic and Modern Variables
6.1 Introduction
6.2 Variables
6.2.1 Literals
6.2.2 Naming Variables
6.2.3 Variables: Explicit and Implicit
6.2.4 Statically Versus Dynamically Typed Languages
6.3 Evaluations of Expressions
6.3.1 Details by Language
6.4 Constants
6.5 Classes and Objects
6.5.1 About Design Patterns
6.6 Arrays
6.6.1 Creating an Empty Array
6.6.2 Creating an Array with Values
6.6.3 Adding Elements
6.6.4 Accessing Array Elements
6.6.5 Changing Values in Array Elements
6.6.6 Array Length
6.6.7 Nested Arrays
6.6.8 Multidimensional Arrays
6.7 Conclusions
7 Control Structures
7.1 Introduction
7.2 Conditional Statements
7.3 Repeat Loops
7.3.1 The While Loop
7.3.2 The For Loop
7.3.3 Nested Loops
7.3.4 Multidimensional Traversal by One For-Loop
7.4 Conclusions
8 Functions
8.1 Introduction
8.2 Defining Functions
8.2.1 Simple Arguments
8.2.2 Complex Arguments
8.2.3 Nested Function Calls
8.2.4 Chained Function Calls
8.2.5 Relative Positioning of Functions
8.2.6 Recursive Calls
8.2.7 Global Versus Local Variables
8.2.8 Functions: Pure and Impure
8.2.9 Function Versus Procedure
8.2.10 Built-In Functions
8.3 Conclusions
9 Implementations and Experiments
9.1 Introduction
9.2 Recursion Experiments
9.2.1 Repeat String n Times
9.2.2 Sum from 0 to n
9.2.3 Factorial from 0 to n
9.2.4 Simple Sequence Generator
9.2.5 Fibonacci Sequence
9.2.6 Sum All Integers from Array
9.3 Interval Scanning
9.4 Spectral Forecast
9.5 Conclusions
References