Question: I understand that there are three types of programming languages:

* Machine languages
* Assembly languages
* high-level languages

And that:

* Machine languages have no abstraction
* Assembly language have little abstraction
* High-level languages have much abstraction (data types being the difference maker?)

---

Is there a standard or model or taxonomy of programming languages different than machine-assembly-highlevel?

In other words, is this taxonomy necessary or are there more "sophisticated" or "complex" categorizations?

Answer: 
In casual words, a Turing machine can do anything computational, but *nothing else*; especially there's no IO. No keyboard, no mouse. It just takes a tape as input and runs a predefined program on it.

This means that you cannot use `window.prompt` or similar (anything that asks for user input) in the middle of your program, and therefore there is no equivalent of "Guess the number" program for TM. So, if you want to stick to the TM as the model of computation, you basically need a different problem that can be solved with binary search, without user input in the middle of the program.

Some examples of such problems include:

* An array of integers is given in strictly increasing order. Determine if a given number exists in the array.
* An array of integers is given, so that all odd numbers come before all even numbers. Find the first even number in the array.
* Given a polynomial and a range (upper and lower limits of the value of x), find a zero of the polynomial within the given range.
Here is how this kind of program could be useful. Suppose that you have a graph, and you are trying to find its chromatic number $\chi$, that is, the minimum number of colors needed to color the vertices of the graph so that each edge connects vertices of different colors.

Given a target number of colors $C$, you can attempt to color the graph using $C$ colors in various ways. This corresponds to an algorithm for answering the question ``is $\chi \leq C$?''. Using binary search, you can use such an algorithm to find $\chi$ exactly.

In this example, $\chi$ isn't written anywhere. Rather, we can check whether $\chi \leq C$ for any given $C$. This suffices for finding $\chi$ using only $\log n$ queries of this form, where $n$ is the number of vertices.