# HPML is a programming language

You read again and again from people who supposedly know how to program HTML - how does that work? I can only speculate about the motives of these people, maybe they think they are programming because they are dealing with code and code? Sure, it must have something to do with programming! Others may simply not know a better word for what they are doing with HTML or they just want to be geek, because as a programmer you are a clever hacker. To claim that HTML is a programming language is of course nonsense.

### An unscientific explanation

HTML pages are not programmed, and the people who write HTML are not programmers. Instead, HTML is a markup language (this is also what the last two letters of the English acronym stand for: HTML - Hypertext **Markup Language**) and HTML is not programmed, but simply written. Writing HTML pages is roughly on par with writing Word documents (there are even supposed to be people who actually write HTML pages with Word). HTML has no commands and essential language constructs from "real" programming languages (loops, conditions, etc.) are missing. So you can't write algorithms in HTML.

Real programming languages on the web, on the other hand, are Java, JavaScript, PHP and Perl. They can be combined with HTML, but therefore do not turn HTML into a programming language.

### A scientific explanation

Phew, first I have to go back a little ...

Presumably, this explanation completely bypasses the target group, because whoever describes HTML as a programming language has probably never seen or even used a real programming language and they will lack some comparison options for this explanatory approach. Well, let's go ...

### Alan Turing

Alan Turing was a British logician and mathematician and is a major founder of theoretical computer science. Turing developed one of the first chess programs and invented the Turing test. In addition, Turing was involved in the development of the tube computer *Colossus* involved, which helped the secret language of the German armed forces *Enigma* to crack and thus made a decisive contribution to the turn of the Second World War.

In particular - and this is important in connection with my explanation - Turing developed a (theoretical) device with which all mathematical functions can be calculated (basis for the first computer models). This device will **Turing machine** called.

Alan Turing was born in 1912 and died of cyanide suicide in 1954 after being accused of homosexuality and suffering from depression as a result of psychiatric treatment with estrogens.

Every year the Turing Prize is awarded in honor of Alan Turing - one of the most important computer science awards.

### Turing machine

Everything that can be calculated can be calculated with the Turing machine. There is no mathematical function that can be solved as a human being, but which the Turing machine fails at. The simplest version of the Turing machine is the 1-band Turing machine. It consists of the following components:

- A storage tape of infinite length (on both sides).
- The tape is divided into an infinite number of storage cells.
- Each memory cell can contain exactly one character (e.g. "a", "c") or a space.
- A read and write head that is controlled by a control unit.
- The head is controlled by a program.
- The read / write head has an initial state z
_{0}. - At the end, the result is written to the tape by the read / write head.

(Turing machines are a theoretical model, because it quickly becomes clear that you cannot build a Turing machine with an infinitely long storage band. In addition, the Turing machine is too slow in practice.)

The program for the Turing machine has the following properties:

- Read access

The character can be read at the current position of the read / write head. - conditions

A condition (~ if) can be queried, namely whether a certain character is contained in the current position. - Write access, movement of the read / write head and change of status

It can perform an action, namely move the read / write head one memory cell to the left / right, write a character or space at the current position and change the state z.

Based on this very simple computer model and the 3 program instructions, additional functions can be implemented. First there are the arithmetic functions (addition, multiplication ...) and on the other hand you get the basic language constructs that (almost) all programming languages have in common, namely loops, conditional statements, jumps, recursions, arrays etc. etc.

The special thing about the Turing machine is that all other computer models (automats) can be simulated with it. Even the functioning of very complicated and advanced computer machines (e.g. quantum computers) can be imitated with a Turing machine (which, however, can be very complex due to the primitive basic functionality of the Turing machine). The reverse is also true: the Turing machine can be emulated on any other computer model.

If a computer model or a language can calculate everything that can also be calculated with a Turing machine, then the computer model or language is called **Turing-complete** designated. However, if there is a mathematical function that cannot be calculated with the model or the language, then one speaks of **Turing incompleteness**. To put it a little differently, it means that you cannot use a Turing-incomplete language **all** can calculate mathematical functions.

Almost all of today's programming languages are Turing-complete, regardless of whether they are imperative, object-oriented or functional programming languages. Even very specialized or restricted languages such as XSLT and Basic can be turing-complete and thus programming languages (you do not have to be able to program operating systems with a programming language).

Back to HTML

It is now very easy to prove why HTML is not a programming language. It is enough to show that HTML is turing-incomplete, that is, that there is a mathematical function that cannot be calculated with HTML. A simple function would be f (×) = x. This calculation of f (×) is impossible with HTML and thus HTML is not a programming language.

The entry was published on Saturday, March 25th, 2017 at 9:51 pm and is filed under Other. you can follow any comments on this entry through the RSS 2.0 feed. you can write a comment or set up a trackback on your site.

- Delete my google search result
- Kindle Paperwhite light interferes with sleep
- Why is cross-contamination meat so dangerous
- How important is friendship in life
- How can someone play video games online
- How do you greet your friends
- What is the government doing to stop urbanization?
- What is freezing fog
- Can dogs eat oyster crackers?
- What does high-performance bomb
- What is a full stack marketer
- Can I learn Clojurescript without learning Clojure
- Why does beer taste like rice?
- What should be the fastest speed limit
- Is NodeMCU an Arduino
- When was Norsk Hydro bombed during World War II
- Have you lapsed with your religious beliefs
- How can I do an Xcode printout
- Can I use Inkscape for the mobile user interface?
- How about sightseeing
- What fear daemons
- What are the Filipino Social Values
- Do good guys ever win
- How would you describe pure consciousness