Le lingue non complete di Turing sono considerate lingue di programmazione? [chiuso]

7

Lettura di una domanda recente: È effettivamente possibile avere un linguaggio di programmazione 'utile' che non è completo di Turing? , mi chiedo se i linguaggi di programmazione non completi di Turing siano considerati linguaggi di programmazione.

Poiché Turing-completezza significa che una lingua deve avere variabili per memorizzare valori e strutture di controllo (per, mentre) ... È una lingua che manca di queste funzionalità considerato un linguaggio di programmazione?

    
posta Tulains Córdova 31.10.2012 - 04:03
fonte

1 risposta

18

Che tu voglia chiamarli o meno "linguaggi di programmazione" dipende dalla tua definizione, ma a mio avviso la risposta è : puoi considerare un linguaggio completo non-turing come un linguaggio di programmazione.

Considera la seguente definizione (da Wikipedia):

A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.

Un DSL completo senza copertura potrebbe facilmente soddisfare tutti questi requisiti. Non puoi necessariamente esprimere algoritmi tutti (questo richiederebbe la completezza di Turing), ma potresti esprimere abbastanza algoritmi per essere utile nel dominio dato.

Anche come un punto un po 'pedante ma filosoficamente importante - i computer moderni sono in realtà macchine a stati finiti, quindi non rigorosamente completi (la completezza di Turing richiede effettivamente memoria infinita ...). Quindi in un certo senso, nessuna lingua come attualmente implementata su un computer moderno è completata da Turing.

    
risposta data 31.10.2012 - 04:20
fonte