Egy programot bármilyen nyelven le lehet programozni?
Nem bármilyen nyelven, sőt bármilyen Turing-teljes nyelven sem lehet. Példának okáért, a Bluetooth nem része a Turing gépnek, tehát például a Turing gépen nem lehet ezt leprogramozni. Ez maga után vonja azt is, hogy a Turing-teljesség nem elegendő ahhoz, hogy ezt meg lehessen tenni. Sőt, nem is feltétlenül szükséges.
Azonban, azokon a nyelveken, amelyek képesek az adott környezetben Bluetooth eszközzel együttműködni, azzal a feltétellel, hogy a gép rendelkezik is ilyen eszközzel, le lehet programozni. Nyilván, a hordozhatóság ilyen módú korlátozásával.
Az általános célú programozási nyelvek általában valamilyen módon lehetővé teszik azt, hogy C-ben írt library-khez valamilyen módon hozzáférj. Így, ha nem is pusztán azon a nyelven megírva, de a C-s library-val együtt használva, a legtöbb általános célú programozási nyelven meg lehet ezt tenni.
"Egy programot bármilyen nyelven le lehet programozni?"
Általánosabban nézve.
A Church tézis kimondja, hogy "Algoritmikusan pontosan az számítható ki, ami Turing géppel".
Így a Turing-teljes, vagyis a tézist kielégítő más nyelveken is kiszámítható minden, ami algoritmikusan kiszámítható. Egy nagyon egyszerű példa például a Brainfuck nyelv.
A Turing teljesség egy nagyon egyszerű, bár korlátozott hasznosságú bizonyítása, amikor egy Turing gépet szimuláló programot készítenek ezeken a nyelveken. Ezt azzal a korlátozással lehet megtenni, hogy kizárólag véges Turing-gépet vagyunk képesek szimulálni. Hiszen, végtelen memóriával ellátott számítógép nem készíthető.
Vagyis ilyen szempontból vizsgálva a kérdést, nem lehet egy programozni bármilyen programot bármilyen nyelven, sőt, vannak olyan programok, amelyeket semmilyen programozási nyelven nem lehet leprogramozni. Azonban, mivel az algoritmusok véges időben érnek véget, ezért elméleti szempontból ritkán jelent problémát a memória végessége.
A te általad említett példa viszont nem algoritmikai probléma, nem is számításról van szó, hanem egy adott hardverrel való kommunikációról. Ehhez pedig a Turing teljesség nem elegendő, kommunikációs képességekre is szükség van. Illetve, nyilván a megfelelő hardverre. Esetenként a Turing teljesség pedig nem is elvárás egy kommunikációs ágens számára.
Magas szintről: igen, bármilyen program bármilyen teljes nyelven létrehozható
Konkrétabban: van, ami csak sok szenvedés árán vagy úgy sem érhető el bizonyos nyelvekben. Például ha senki nem írt volna még Bluetooth modult Pythonhoz, akkor először azt meg kell írni, csak utána lehet Pythonban Bluetooth-os programokat írni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!