Kezdőoldal » Számítástechnika » Programozás » A Python programozási nyelv...

A Python programozási nyelv vagy script nyelv és mi a különbség a 2 között?

Figyelt kérdés

Szóval az érdekelne hogy a python micsoda,mert hallottam hogy ez "csak" egy script nyelv.Ha ez így van,akkor mivel tud kevesebbet mint egy programozási nyelv?

Alapvetően mi a különbség a script nyelvek és programozási nyelvek között?


Előre is köszönöm.


2012. márc. 30. 13:19
1 2
 11/20 iostream ***** válasza:

De.

Az a pyc fájl amit látsz az a kesselt kód.

2012. ápr. 1. 16:10
Hasznos számodra ez a válasz?
 12/20 anonim ***** válasza:

Sajnos továbbra sincs igazad, alapvető fogalmakkal nem vagy tisztában. Javaslom, indítsd el a Java-t egyszer -XX:+PrintAssembly paraméterrel, és a konzolod megjelenik majd a fordított bináris kód. Na AZ a JIT.


A JIT ugyanis *natív* kódra való fordításd jelent. A pyc bytekód, nem natív kód.


Egyébként az érvelésed a JIT jelentésétől függetlenül mindenképpen bukik, ugyanis azt állítottad, hogy a "a forráskód maga a program", és ez CPython esetében nem igaz. Mellesleg, van olyan nyelv, ahol tényleg így van (vagy legalábbis így volt - ld. Ruby), de itt nem ez a helyzet.


Azt hiszem itt a berekeszthetjük a vitát.

2012. ápr. 1. 16:28
Hasznos számodra ez a válasz?
 13/20 iostream ***** válasza:

Értem, nincs mit mondanod, ezért rekesszük be. Sajnálom, enyém az utolsó szó ezesetben.


Szerinted mit csinál a Python interpreter, amikor elindítasz egy python programot? A cpython speciel megnézi, hogy van-e elég friss pyc fájl, ha van, azt lefordítja, és lefuttatja, ha nincs, akkor generál egyet előbb.


A forráskód maga a program, hiszen ezt tudod közvetlenül futtatni. Most az, hogy a cpython a köztes termékeket lementi a vinyóra részletkérdés, ha letörlöm azt, ugyanúgy tud futni a program.

2012. ápr. 1. 17:35
Hasznos számodra ez a válasz?
 14/20 anonim ***** válasza:

Őszintén nem értem, hogy miért kell helyben jönnöd a lóf*szért, de hát ha neked ez jó...


"Értem, nincs mit mondanod, ezért rekesszük be"


Nincs mit mondanom? Nagyon furcsa, valahogy a JIT-es dologra neked nem volt mit mondani. Ez persze nem meglepő, mivel azt se tudtad, hogy az mi.


"A forráskód maga a program, hiszen ezt tudod közvetlenül futtatni"


Mondom, hogy nem igaz, amit írsz, mert NEM AZT FUTTATJA, hanem a bytekódot. Persze nem nehéz belátni, hogy miért teljesen hibás a gondolatmeneted, mert ennyi erővel egy "C forráskód is maga a program", mert mondjuk indításkor gyorsan megcsinálom, hogy elépakolom egy gcc-t (sőt, inkább TCC-t - maga az írója is mondja, hogy lehet script frontendként használni: [link] és már fut is.


Sokkal egyszerűbb lett volna, ha beismered a tévedésed az elején, semmi sem történt volna volna, velem is megesett már. Így viszont ez szépen itt marad rögzítve, ha csak valaki meg nem unja ezt és jelent minket :))

2012. ápr. 1. 21:08
Hasznos számodra ez a válasz?
 15/20 iostream ***** válasza:
0%

Te tényleg ennyire retardált vagy, vagy ehhez már erőlködnöd kellett? NYÍLVÁN valamilyen formában lefordítja, szöveget nem ért a gép. De ettől még a forráskód maga a program, azt futtatja. Az, hogy előtte bytekódot csinál belőle csak azért kell, hogy platformfüggetlen legyen az interpreter nagy része, a platformfüggő dolgokat pedig a bytekódot JITtelő modul tartalmazza.

Ha nem mentené le neked a .pyc fájlokat, nem is tudnád, hogy volt egy köztes réteg. Erről van szó. Beírom, hogy python asd.py, és lefut. C interpretert is lehet írni, de a szokásos mégiscsak az, hogy gcc -o asd asd.c && ./asd, azaz két külön utasítás, soha nem a forráskódot futtatod (interpreteren keresztül).


Szerintem hagyd abba az okoskodást, mert egyre gyengébb.

2012. ápr. 1. 21:30
Hasznos számodra ez a válasz?
 16/20 A kérdező kommentje:
Köszönöm a válaszokat mindenkinek :)
2012. ápr. 3. 08:24
 17/20 anonim ***** válasza:

Elmentem pár hónapra külföldre dolgozni, de most visszanéztem ide.


"De ettől még a forráskód maga a program, azt futtatja"

Megmondom mi a probléma, egyszerűen mi nem ugyanazt értjük "valaminek a futtatásán".



A te absztrakciós szinteden csak az számít, hogy mire klikkelsz, min nyomsz entert és mi történik. Ezen a szinten valóban az látszik, hogy maga a script "indul el" és semmi más nincs a háttérben.


Számomra a futtatás azonban nem ezt jelenti. Én foglalkoztam compilerek és interpreterek működésével, ez az egyik kedvenc területem (bár szakértőnek nem mondanám magam - óriási terület) és a különböző feldolgozási módokban nagy különbségek lehetnek.


Létezik ugyanis olyan megvalósítás is, hogy valóban direktben a forráskódot futtatják, bármiféle átalakítás nélkül, még szintaxis fa sem készül el. Ezt szinte sose alkalmazzák (max tényleg egyszerű struktúrájú, lightweight nyelvek, DSL-ek esetében), mivel egyszerűen irdatlan lassú már egy közepes feladatra is. Számomra a "forráskód maga a program" kijelentés igazán ezt testesíti meg, márpedig ez a Python esetében (mint azt láttuk), nem igaz. Én nem ismerek amúgy ilyen nyelvet, a Wikipedia szerint egy régi BASIC implementáció elvileg így volt interpretálva. Ez hihető is lenne, mert a BASIC nyelvtana nagyon egyszerű és viszonylag könnyen parseolható.


Egy fokkal gyorsabb, ha gyártunk egy AST-t, és azt interpretáljuk. Ez már sokkal bevállalhatóbb és gyorsabb. Én még ezt is úgy nevezném, hogy a "forráskód maga a program", hiszen ez a fajta transzformáció még mindig nagyon magas szintű és szinte teljesen tartalmazza az eredeti program struktúráját. A Ruby MRI implementációja pontosan így működik ( [link]


Ezen felül jön a bytekód, valami IR forma (pl. LLVM IR: [link] és végén a tényleges gépi kód.


Azt hiszem eléggé kitárgyaltuk most a témát, és tiszta számodra is, hogy az én szemszögemből miért nem tekintettem helyesnek a te definíciódat, és miért kardoskodtam az állítás pontatlansága mellett.

2012. aug. 1. 12:29
Hasznos számodra ez a válasz?
 18/20 anonim ***** válasza:
21%

17:

"Én foglalkoztam compilerek és interpreterek működésével,"


Sajnos nem eleget.


"Számomra a "forráskód maga a program" kijelentés igazán ezt testesíti meg, márpedig ez a Python esetében (mint azt láttuk), nem igaz."


Hoztál példának egyetlen implementációt az n+1-ből és erre mondod azt, "mint láttuk"? :o)


"Én nem ismerek amúgy ilyen nyelvet,"


Ja, tehát ha te nem ismer, akkor már nincs is?

Azt írtad, behatóan foglalkoztál compilerek, interpreterek működésmódjával. Hát akkor a 'beható' nálad pont ugyanazt jelenti, amit nálam a 'sekélyes'.


Talán nem veszed zokon, ha az egyébként is mérhetetlen tudásodat gyarapítom azzal, hogy olyan interpreter nincs, nem létezik, amely ahogy írod, gépi kódra fordít. Ugyanis, ha volna ilyen, akkor azt nem interpreternek, hanem compilernek hívnák.

2016. febr. 5. 05:52
Hasznos számodra ez a válasz?
 19/20 anonim válasza:
55%

Összegezve a vitát a jövőben idelátogató tájékozódni vágyóknak: (mert engem is összezavart ez a vitatkozás itt)


"iostream nevű felhasználó" egykori hozzászólásai zavarosak, zagyvaságok, dilettantizmusról árulkodnak.


"85% helyes hozzászóló " egykori hozzászólásai helyesek, nagyon részletekbe menően is kifejti a témát.


A vita egyébként nem is az eredeti kérdésre vonatkozott. (A Python-t szkriptnyelvnek hívjuk, de mégis miért, hiszen tök jól meg lehet tanulni rajta programozni.) Tehát célt tévesztett az egész vita.

2016. nov. 23. 14:51
Hasznos számodra ez a válasz?
 20/20 anonim ***** válasza:

Vissznézve így pár év után, látom ismét egy ember tévedt ide, aki nagyon akarja, hogy felmossák vele a padlót :)


"Hoztál példának egyetlen implementációt az n+1-ből és erre mondod azt, "mint láttuk"? :o) "

Miért, melyik Python implementáció működik így, te szerencsétlen?



"Ja, tehát ha te nem ismer, akkor már nincs is? "

Kapásból említettem utána egy régi BASIC implementációt, de semmi gond. Csak plusz egy mondatot kellett volna elolvasni, igazán semmiség.


"Talán nem veszed zokon, ha az egyébként is mérhetetlen tudásodat gyarapítom azzal, hogy olyan interpreter nincs, nem létezik, amely ahogy írod, gépi kódra fordít"

LOL, ahogy írom. Hála a jó istennek sehol nem írtam ilyet, hiszen ennek semmi értelme. Azt említettem, hogy egy programkódot különféle szinteken lehet ábrázolni, és ennek a legalján van a gépi kód, ami a CPU számára már ténylegesen futtatható (most felejtsük el a bináris formátumot). A többi szinthez átalakítások kellenek, minél magasabb szinten vagy, annál több. Bármilyen hihetetlen, ebből sehogy sem következik az, amit te hallucináltál.


" Hát akkor a 'beható' nálad pont ugyanazt jelenti, amit nálam a 'sekélyes'. "

Senkit nem érdekel, hogy szerinted a tudásom mennyi, ugyanis szemmel láthatóan te nem vagy azon a szinten, hogy képes legyél más szakmai tudását megítélni.



"85% helyes hozzászóló egykori hozzászólásai helyesek, nagyon részletekbe menően is kifejti a témát. "

Igen, ezt próbáltam tenni, de bizonyos dolgok megértéséhez elengedhetetlenek minimális computer science ismeretek, amivel a fenti válaszolók elég egyértelműen nem rendelkeznek. Vagy ha igen, akkor össze-vissza kavarják a definíciókat. A kijelentés, hogy a "forráskód maga a program" egy zagyvaság, hiszen a program definíciója az, hogy "An organized list of instructions that, when executed, causes the computer to behave in a predetermined manner", esetleg "A program is a sequence of instructions that specifies how to perform a computation". Ez jelentheti magát a futtatható binárist de akár a forráskódot is, kontextustól függően (ha vki azt mondja, hogy "I wrote a C program", akkor elég egyértelműen nem a lefordított binárisra gondol). Épp ezért a kezdeti kijelentés egész bizonyosan értelmetlen, szakmailag pongyola volt. De ez már tényleg feleslegesen túl lett tárgyalva.

2018. márc. 27. 13:45
Hasznos számodra ez a válasz?
1 2

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!