1
$\begingroup$

I've heard that C++ and Python where implemented using C. How can someone make an object oriented language out of something that doesn't support objects?

I've read in the book "Math You Can`t Use - Patents, Copyright and Software" that code is considered an equivalent of mathematics because it will eventualy be ran on cirquits that work and interact based on mathematical logic.

If a limited tool like C can produce a tool with further capabilities like C++, does that mean that mathematics can be used to create "better" mathematics? That seems to contradict Gödel's incompleteness theorem.

What is the essence of this trancedance from simple procedural to object oriented? Is there some code written in C that C++ and Python use or are they written in a completely different paradigm from the ground up?

$\endgroup$
1
  • $\begingroup$ Note that your question is somehow similar to "how can someone build a running vehicle out of something that does not run on its own?". In computers, any software, including programming languages interpreters and compilers, could be written by manually entering 0's and 1's. It is only terribly cumbersome to do so! (According to a legend, Seymour Cray did once write a bootloader in binary, on the spot, when a machine did not boot) $\endgroup$
    – chi
    Mar 17, 2018 at 21:31

1 Answer 1

3
$\begingroup$

The key point is that essentially all programming languages are equally powerful, and as powerful as we know how to make any computing system. That is, they can all simulate a Turing machine, up to the limitations of the computer they're used on. (Real computers can run out of memory; Turing machines can't.)

The only differences between programming languages is in how convenient it is to express certain ideas. For example, you can implement objects in C using structs containing function pointers, though it's not very convenient because the compiler doesn't help you much so you have to do a lot of things manually that something like C++ would do automatically for you.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.