Programming Languages(1)

Artificial Intelligence Technology   Machine Learning Technology  Digital Transformation  Topic Model   Ontology Technology    Natural Language Processing  Intelligent information technology

I was asked by an acquaintance to give a small lecture to beginners in programming. The subject was “Computers and Programming Languages,” and I summarized the basics of what computers are and what programming is. Aside from the participants’ reactions, I think it was good that I was able to organize my own knowledge by summarizing these topics. This time, I would like to make some comments based on this.

First of all, the current computer is a Turing machine that: 1. receives and stores words of instructions, 2. executes the instructions in order (implements algorithms), and 3. changes the state of the device and the computer’s memory. The most important of these functions is the “execution of instructions in order (implementation of algorithms)” (2). Programming can be thought of as an interface for instructing the computer to “execute instructions in order”.

Let’s go back to the question “What is a computer? If we go back to the question “What is a computer?”, we can say that a computer is something that “computes” (converts information into numerical values), as the word “computare” (Latin) comes from. The word “computare” can also be broken down into the words “com” (together) and “putate” (think), and from these etymologies we can imagine the function of a machine that thinks together with people (artificial intelligence).

Calculating is a function of putting in some kind of “input”, performing sum-difference-product-comparison and producing “output”, and executing a “function” which is a function box to perform that calculation. From this point of view, functional languages such as Elm, PureScript, and ClojureScript in the aforementioned AltJS can be said to be interfaces that follow the process of “calculating” in accordance with the behavior of computers.

From the standpoint of using a computer, the definition of a computer can be seen as a machine that “performs one step at a time” to solve “the problem (a person) wants to solve” instead of a person. The definition of programming from this perspective is to translate the tasks (procedures) that people want the computer to do into instructions that the CPU (the brain of the computer) can execute.

From the above perspective, the first thing you need to do to create a program is to ask yourself what you want to do. (Are there any problems or issues?). The first thing you need to do is to think about what you want to do (are there any problems or issues?), and then put it into a procedure. These tasks are equivalent to the activities called “requirements definition” which is the first step in building an IT system. The requirements for the procedures (instructions to the computer) to be summarized as requirements can be as follows.

Include everything that needs to be done (in detail)

There must be an endpoint (clarification of the goal)

3. Anyone can do the work if there are instructions (take into account various variations)

I think the above can be thought of more concretely if you imagine asking someone to do a task.

What is a computer? As a reference book for the “What is a computer?” section, I recommend “How was the computer made? For programming, there is “Introduction to Programs that Change the World”. The former is written by Ai Kawazoe, who has written books such as “The Box of the Genie,” “The Black and White Door,” and “The Castle of the Automaton” that gently explain information science in the form of a fairy tale. The latter book, written by Takamitsu Yamamoto, is also aimed at beginners in programming, and describes what programming is essentially about. The latter book, by Takamitsu Yamamoto, is also aimed at beginners in programming.

For more advanced reference books on computers, there are “The Universal Computer: The Roadmap from Leibniz to Turing” and “100 Famous and Classic Books on Computers, Revised Edition”. The former covers the theoretical development of the concept of the computer (universal computer), while the latter covers representative books on computer technology, so you can follow the technological development by reading them.

In the next article, I will continue to discuss programming languages.

コメント

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