Programming Technology Overview

Artificial Intelligence Machine Learning Digital Transformation Ontology Technology Natural Language Processing Intelligent information Clojure Python PHP Prolog LISP R language C/C++ Java CSS Javascript Navigation of this blog

About Programming Technology Overview

This section provides an overview of programming languages. The contents include (1) What is a programming language? Then, the overview and history of “structured languages,” “object languages,” and “functional languages,” which are the most important paradigms in the history of programming languages, are described, followed by an overview of generic programming, which connects mathematics and algorithms, and an overview of front-end programming languages, which are at the core of web technology. An overview of front-end programming languages, which are at the root of web technologies, will be presented.

Overview / History

Computers do two things (and only two). One is to perform calculations, and the other is to remember the results of the calculations. However, computers can do both of these things very well. Even an ordinary computer performs about one billion calculations per second. The several hundred gigabytes of capacity of a typical computer is equivalent to the weight of several hundred thousand tons or more, or tens of thousands of African elephants, if we imagine it at 1 g per byte, for example.

Now consider “computational thinking” for solving problems computationally. All knowledge can be classified as either declarative or imperative. Declarative knowledge consists of statements of fact, while imperative knowledge is “how-to” knowledge, a recipe for deriving information.

The current computer 1. receives and memorizes words of instructions, 2. executes the instructions in sequence (implementing the algorithm), and 3. changes the state of the device or computer memory. The important part of these functions is the second, “executing the instructions in order (implementing the algorithm). Programming can be thought of as an interface for instructing the computer to “execute instructions in sequence.

If you are building web-related software called a front-end, JavaScript, CSS, and HTML are essential because they are the languages that the browser accepts. altJS is available, but it is ultimately compiled into JavaScript and loaded into the browser, so you need to start with JavaScript. The fact that it is an essential language for Google engineers confirms this.

On the back-end side, where the browser is not involved, the options are much wider. The choices include productivity (ease of programming), ease of debugging, abundance of libraries, and, in the case of group development, the percentage of people around you who can use the language.

On the similarities between the rationalist and functionalist art of Bauhaus and the functional beauty of (functional) programming

History of programming languages, from machine language to structured programming

Implementation

In order to program, it is necessary to create a development environment for each language. This section describes how to set up specific development environments for Python, Clojure, C, Java, R, LISP, Prolog, Javascript, and PHP, as described in this blog. Each language has its own platform to facilitate development, which makes it possible to easily set up the environment, but this section focuses on the simplest case.

File input/output functions are the most basic and indispensable functions when programming. Since file input/output functions are procedural instructions, each language has its own way of implementing them. Concrete implementations of file input/output in various languages are described below.

Among programming languages, the basic functionality is one element of the three functions of structured languages (1) sequential progression, (2) conditional branching, and (3) repetition, as described in the “History of Programming Languages” section. Here, we show implementations of repetition and branching in various languages.

This section describes examples of how servers described in “Server Technology” can be used in various programming languages. Server technology here refers to technology related to the design, construction, and operation of server systems that receive requests from clients over a network, execute requested processes, and return responses.

Server technologies are used in a variety of systems and services, such as web applications, API servers, database servers, and mail servers. Server technology implementation methods and best practices differ depending on the programming language and framework.

Database technology refers to technology for efficiently managing, storing, retrieving, and processing data, and is intended to support data persistence and manipulation in information systems and applications, and to ensure data accuracy, consistency, availability, and security.

The following sections describe implementations in various languages for actually handling these databases.

Structured Language

Implementation in various languages of iterative processing, one of the key elements of structured programming

Object-oriented Language

An overview of object-oriented languages, one of the key paradigms of programming languages, starting with classes and methods.

An overview of object-oriented languages, one of the key paradigms of programming languages, polymorphism, a mechanism for creating “common main routines”.

In this issue, we will discuss inheritance and types. Inheritance is “a mechanism to organize the similarities and differences between similar classes. Another way to describe it is “a mechanism to organize the common parts of classes into separate classes. By using this mechanism, it is possible to create a common class that combines variables and methods, and to borrow definitions from other classes for use.

In programming, ordinary types are generally used to indicate what kind of data is contained in a simple variable or numeric value, but OOP uses a “type” that defines the format of the data structure, including implicit structural and behavioral information. This mechanism allows for more flexible error detection and optimized memory usage at compile time.

Functional Language

The role of functions in programming and how they differ from OOP

The History of Functional Languages (LISP and its Derivatives)

Data Types and Typing Languages

Data types are an integral part of programming languages. First of all, let’s look at how computers store data.

Basically, computers can only handle numerical values. For example, when dealing with characters, they are assigned a number (character code) and handled as such. In the case of decimal numbers, when all digits reach 9, the next digit is moved up to the next digit. In binary numbers, when all digits reach 1, the next digit is carried to the next digit. Therefore, with binary numbers, only 0 and 1 can be used to represent numbers from 0 to 255 in the case of 8-digit numbers, for example.

A statically typed language is one in which the type of an expression is determined at compile time. First, in statically typed languages, variables have types: if you declare a: in Java, a is of type int. And a+1 is a variable a of type int plus 1 of type int, so the result is of type int. If a+0.5, the result will be of type double, because in Java, int is expanded to double and then added. Thus, in statically typed languages, the type of each expression, including subexpressions, is determined at compile time. Of course, the types of method arguments and return values are also determined. Otherwise, the form of the expression would not be determined.

In this article, I will discuss type hinting in Python, a dynamically typed language, using a type checker called mypy.

From a type system perspective, Clojure is a Lisp programming language with both a static and dynamic type system. It combines the characteristics of a statically typed language, which Java is based on, and the dynamic type system of the Lisp language system, which supports flexible coding without type declarations, thus increasing code reliability and maintaining code flexibility at the same time. Clojure spec is a C++ language.

Clojure spec is one of the libraries included in Clojure. It is a tool that can define specifications for various elements such as function arguments, return values, and data structures, and can also perform data verification and conversion.

Generic Programming

On Mathematics, Algorithms and Generic Programming

Front-end language Overview

Programming languages (Javascript, react, etc.) used for web system development

About the various compiler languages of Javascript

コメント

タイトルとURLをコピーしました