T
T
tuccar2014-10-25 13:30:08
Programming
tuccar, 2014-10-25 13:30:08

Are all programming languages ​​a consequence of the processor architecture?

If we come up with a fundamentally different processor architecture than Intel / AMD, will this lead to the fact that programming languages ​​will also become fundamentally different? Or are PLs loosely coupled / not at all coupled to the processor architecture?

Answer the question

In order to leave comments, you need to log in

4 answer(s)
M
Misha Krinkin, 2014-10-25
@kmu1990

A couple of counter questions:
1. what is considered a fundamentally different architecture? in addition to the Intel / AMD you mentioned, there are also such things as arm / mips, arc, itanium - they all differ from each other to one degree or another.
2. what architecture do you think languages ​​like haskell or prolog come from? And, for example, all sorts of DSLs are also programming languages, just highly specialized ones.
I don't think that programming languages ​​have no connection with the processor at all (at least the compiler / interpreter must be executed on the processor), but it seems to me that it is simply impossible to answer your question until there is a clear understanding of what "another architecture" is. On the other hand, languages ​​are a reflection of one or another model of computing, if a new model is proposed, then a new language will be needed to describe calculations in such a model, but whether it will be fundamentally different and whether it will need a fundamentally different processor is not clear (as an example, imperative languages vs are declarative, both run on the same processors).

S
Sergey Lerg, 2014-10-25
@Lerg

Oh sure. For a new type of processor, they came up with a new programming language Corelet.
https://dl.dropboxusercontent.com/u/91714474/Paper...

V
VyusFire, 2014-10-25
@VyusFire

Changing the architecture of the processor will only change the languages ​​of the assembler type, so to speak. Since languages ​​were created to make it easier to write programs, they tried to lay down abstract concepts that would allow programmers to work with a "virtual machine" (an abstract machine in which there are no restrictions on memory, processor time, etc. - I reproduced this definition from memory and it may be wrong :-) ). Simply put, there are so-called HLLs - High Level Languages. They are, as it were, hardware independent and allow you to write cross-platform code (for example, C). Because virtual machines, interpreters and compilers are responsible for translating the DLL code into machine code, and they would undergo major changes in the event of a change in architecture.
PS The languages ​​themselves will change only a little in the event of a change in architecture (mainly libraries for working with input / output and the like).

S
Sergey, 2014-10-25
Protko @Fesor

There is such a term, " semantic gap ".

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question