Kezdőoldal » Számítástechnika » Programozás » A nyelvészet ennyire fontos?

A nyelvészet ennyire fontos?

Figyelt kérdés
Még valamikkor tavaly beszélgettem egy programozóval, aki azt mondta, hogy a minőségi programozáshoz elengedhetetlen a nyelvészeti ismeret, hiszen a programozó programnyelvekkel dolgozik. Ez igaz? Tényleg kell nyelvészeti ismeret is a jó programozóknak?

jan. 9. 16:38
1 2 3 4
 11/39 anonim ***** válasza:
91%
Egyáltalán nem :-) A programozási nyelv segítségével utasításokat ad a programozó, nem pedig "beszélget" a számítógéppel. Persze, használjuk a kommunikáció kifejezést pl. a TCP/IP kommunikáció leírására, de nyelvi értelemben szerintem ezek nem azok (csak nincs rá jobb kifejezésünk), amikkel a nyelvészet foglalkozik. Szintaktikája, szemantikája persze van, de pl. fonetika, morfológia, pragmatika nincsen, egy-egy utasításnak mondjuk kontextusa nincs, ahogy pl. az emberi nyelvben ez elég általános dolog. Egy printf() a programozási nyelvben a kód egészében mindig ugyanazt az utasítást jelenti (ráadásul az utasításra adott válasz determinisztikus, mindig ugyanaz) míg pl. a "fogd meg a söröm" "utasítás" egy kommunkáció során legalább két jelentéstartalommal bír, de hogy melyikkel, az az adott szituációban dől el, ahogy a rá adott válasz reakció is.
jan. 9. 19:34
Hasznos számodra ez a válasz?
 12/39 A kérdező kommentje:

Kommunkikálni lehet kétirányúan (duplex) és lehet egyirányúan (simplex) is.


A többes jelentéstartalom nem feature egy természetes nyelvben, hanem funkcionális hiba.

jan. 9. 19:39
 13/39 anonim ***** válasza:
93%
Úgy látom, hogy más nyelvet beszélünk mi is. Sebaj. Csak azt nem értem, hogy a programozói szakokon miért nem oktatnak sehol nyelvészetet (és miért nem tudnak a nyelvészek programozni), illetve miért matematikusok a kollégáim. Biztos csak műkedvelők. :-)
jan. 9. 20:03
Hasznos számodra ez a válasz?
 14/39 anonim ***** válasza:
90%

Az a baj, hogy kevered a szezont a fazonnal.

Tipikus szakbarbár hiba, erre szokták mondani, hogy ha kalapácsod van, mindent szögnek nézel. A programozás folyamatának absztrakt algebrai és analitikus megfogalmazását nagyon jól bevágtad, ezt el kell ismerni. Az információelméleti ismereteid is kiválóak. Ami nem megy: ezek adaptív alkalmazása, illetve annak felismerése, hogy mely jelenségekre lehet, és melyekre nem, vagy csak részben lehet ráhúzni az ismereteidet.


A gondolatmeneted már ott megbukik, hogy a nyelvészet még igazából a nyelvtanuláshoz sem kell. Definíció szerint a nyelvészet "az emberi nyelvekkel foglalkozó tudományág", ami a nyelvek különböző jellemzőit, valamint az egyes nyelvek közötti összefüggéseket tanulmányozza. Ez még az emberi nyelvek tanulásához sem szükséges, ott ugyanis az a lényeg, hogy megismerd az adott nyelv szavait, és a nyelvtan, valamint a nyelvhez kötődő egyéb összefüggések segítségével abból képes legyél emberi kommunikációra alkalmas mondatokat, szövegeket alkotni.

Van olyan ismerősöm, aki 7 nyelven beszél legalább társalgási szinten, ebből hármat anyanyelvi szinten, és teljesen buta a nyelvészethez. De a felsőfokú nyelvvizsgával rendelkezők nagy részére szintén igaz ez. A középfokú szintet elérőknél meg 1-2% kivételével mindenkire. Ennyire számít a nyelvtanuláshoz a nyelvészet.


"A nyelvészet a nyelvekkel fogllakozik. Ebbe minden nyelv belefér, még a programozási nyelveknél sokkal elrugaszkodottabb nyelvek is, mint az állatok kommunikációja során alkalmazott nyelvek."

A nyelvészet az emberi nyelvekkel foglalkozik. Azokkal, amelyeket interperszonális kommunikációra használnak. Az állatok kommunikációját nem szokás nyelvnek tekinteni, legalábbis a legtöbb állatét biztos, hogy nem. Ezek nem bírnak összetett jelentéstartalommal, csak egy-egy érzés, jelzés, vagy utasítás kifejezésére szolgálnak. Nincsenek mondataik, nincs szintaktikájuk, nincsen meg bennük az, amitől egy nyelvet nyelvnek lehet tekinteni.

Amúgy meg gáz, hogy a nyelvészetről okoskodsz, de teljesen alapvető nyelvészeti fogalmakkal sem vagy tisztában. Innentől már végképp komolytalan az erőlködésed.


"A programozási nyelvek a természetes nyelvek analógiájára létrehozott, redukált eszközkészletű (szókincs, szófajok) formalizált mesterséges nyelvek."

Távolról sem.

A programozási nyelvek algoritmusok leírására szolgálnak, közvetlen, vagy közvetett módon a processzor számára kiadott utasításokat írják le. Ennek kb. annyi köze van az emberi nyelvekhez, mint egy kémiai reakcióegyenletnek.


"A többes jelentéstartalom nem feature egy természetes nyelvben, hanem funkcionális hiba."

Ismét csak előjön a "ha kalapácsod van, mindent szögnek nézel" jelenség.

Túl azon, hogy láthatóan a magyar nyelv egyre nehezebben megy neked (a "feature" egy angol szó, és még csak jövevényszónak sem tekinthető), amit írsz, az egész egyszerűen baromság. Te abból indulsz ki, hogy a természetes, emberi nyelveknek ugyanaz a feladatuk, mint a programozási nyelveknek. Közben pedig ez a legnagyobb ostobaság, amit állítani lehet. Az emberi nyelvek nem csak puszta tényszerű információközlésre szolgálnak. Az emberi nyelvek feladatai közé tartozik többek között a jelentésárnyalatok, hangulatok közvetítése, vagy a művészi kifejezés lehetősége is.

jan. 9. 21:04
Hasznos számodra ez a válasz?
 15/39 2*Sü ***** válasza:
82%

Élek a gyanúval, hogy a programozó ismerősöd nem a „nyelvészeti ismeret” kifejezést használta, hanem talán a „nyelvek ismeretét”, ami alatt nem a természetes nyelveket, hanem a különböző programnyelvek ismeretét értette. És úgy igaza is van, ha valaki 1–2 programnyelvet ismer azzal is lehet programozgatni, de igazán minőségi tudást tud adni, ha valaki mondjuk egy tucat programnyelvvel megismerkedett közelebbről.


Mert lehet, hogy van analógia, ami miatt jó ötlet volt a programok, az utasítások sorának megírási módját nyelvnek hívni, de egy programozó kb. annyi hasznát veszi a nyelvészeti ismereteknek, mint egy receptkönyv írója a gyógyszerészeti ismereteknek, vagy mint te a telefonod menüjének kezelésében a szakács szakma menü összeállítási fortélyainak, vagy mint a részecskecsaládokat vizsgáló fizikus a családterápiának vagy a családfakutatásnak.


(Nyilván más tészta, ha valaki kimondottan nyelvészeti területhez kapcsolódóan ír szoftvert. Neki kellenek a nyelvészeti ismeretek is. Kb. úgy, mint ahogy ahhoz, hogy valaki kottaszerkesztő programot írjon, kellenek zenei ismeretek. De a zeneismeret csak az *adott* szoftver megírásához kell, nem általánosságban a programozáshoz.)


Az, hogy a programnyelvet nyelvnek neveztük el, azt néhány analógia indokolta. A számítógépnek a számok, a gépi kód a nyelve. Az utasításokat is számok reprezentálják, a paramétereket is számok reprezentálják, ha valamilyen feltétel esetén máshogy kell folytatni az utasítások végrehajtásának sorát, vagy egy utasítássort többször kell végrehajtani, akkor a kódban való ugrálást is számok reprezentálják. Azt azért elég nehéz megírni is, értelmezni is, módosítani is, hogy: 200, 0, 0, 0, 0, 102, 184, 1, 0, 102, 185, 2, 0, 102, 59, 13, 0, 0, 0, 0, 119, 7, 102, 247…


Ezért jött már az ősidőkben az ötlet, hogy bár egy-egy utasítást egy adott processzoron egy adott kódszám jelenti, írjuk mégis valamiféle érthetőbb kulcsszóval le ezt. Ha egy adott regiszterbe – afféle belső munkamemória – kell írni egy számot, akkor az angol „move” szót rövidítve írjuk azt, hogy „mov”. Ha két regiszter tartalmát össze akarjuk hasonlítani, akkor írjuk a „compare” rövidítéseként azt, hogy „cmp”. Meg eleve a regisztereket – amiből néhány van csak – szintén jelöljük számok helyett betűkkel. Ha máshonnan kell egy adott utasításra ugrani, akkor azt meg jelöljük valami olvasható címkével. Az már egy fokkal olvashatóbb, hogy:


factorial:

 enter 0, 0

 mov ax, 1

 mov cx, 2

loopstart:

 cmp cx, di

 ja loopend

 mul cx

 inc cx

 jmp loopstart

loopend:

 leave

 ret


És már itt érezhető az analógia. Ez nem a számítógép nyelvén van írva – ami a gépi kód –, hanem valamilyen ember által olvashatóbb nyelven. A számítógép ebben a formában nem tud vele mit kezdeni, ahhoz ezt le kell neki fordítani (mint ahogy a természetes nyelvek között is fordítunk). Az utasítások ilyen módon való megadásában vannak kulcsszavak (amik egy-egy utasítást vagy utasításcsoportot, vagy mondjuk egy adott regisztert jelentenek), van valami olyasmi szabályrendszer is, mint a természetes nyelveknél (kvázi nyelvtana, szintaktikája van a nyelvnek), hiszen a „mov” vagy a „cmp” jelent valamit, szemben a „XQW”-vel, ami nem értelmes „szó” ebben a „nyelvben”. Az utasítás paramétereit vesszővel kell elválasztani, a címkék után kettőspontot kell tenni, ez is nagyon hasonlít arra, minthogy a magyar nyelvben a kérdőmondat után kérdőjelet kell írni.


Aztán persze megjelent az igény, hogy még könnyebben érthető, a gépi kódtól távolabbi, az emberi gondolkodáshoz közelebbi módját találjuk meg annak, hogy megadjuk, milyen utasításokat hajtson végre a számítógép. Meg ugye minden processzor más-más utasításokat ismer, máshogy kell paraméterezni, stb… Megjelent az igény arra is, hogy ugyanazon programnyelvnek ugyanazon forráskódjából többféle különböző processzorra is le lehessen fordítani ugyanazt a programot. Persze minél magasabb szintű egy programnyelv, a fordítás annál komplexebb feladattá válik.


~ ~ ~


De itt véget is ér az analógia. A nyelvészet foglalkozik pl. a beszédhangokkal. Na az a programnyelvek esetén értelmezhetetlen. Vagy foglalkozik a morfológiával. Az is értelmezhetetlen a programnyelveknél. Foglalkozik pl. szociolingvisztikával, nyelvtörténettel, lexikológiával, etimológiával, dialektusokkal, meg a jó ég tudja még mivel. Ezek is értelmezhetetlenek a programnyelvek esetén. Olyan fogalmak, amikkel a nyelvészet is foglalkozik, mint pl. szintaktika, szemantika, azok ugyan értelmezhetők a programnyelvekre, de teljesen máshogy működik, másról szól.


Szóval ahogy írtam, a programozónak kb. annyira hasznos a nyelvészeti tudás, mint a csontkovácsnak a fémek ötvözésével kapcsolatos tudás.

jan. 10. 00:36
Hasznos számodra ez a válasz?
 16/39 BringaManó ***** válasza:

#4: "láthatóan a magyar nyelv egyre nehezebben megy neked (a "feature" egy angol szó, és még csak jövevényszónak sem tekinthető)"


Amúgy tök jó, hogy ennyi okosat írsz, és mindent helyére teszel, ebből igazán sokat tanulhatunk (köszönöm is!) – de speciel ebben kicsit eltévedtél: a feature szót szokták használni a magyarban, úgyhogy ennek a használata nem mutatja, hogy valakinek ne menne a magyar nyelv (épp ellenkezőleg).

Persze, nem egy "irodalmi", választékos, szép megoldás, de hát a nyelv nemcsak olyasmikre való, neked nem kell mondanom.

Lehet, hogy bizonyos szempontok szerint te nem tekinted jövevényszónak, de a "jövevényszónak" – ahogy nyilván tudod – már eleve nincs egy olyan, egzakt definíciója, amely alapján egyértelműen, objektíve megmondható volna egy-egy szóról, hogy jövevényszó-e, így kicsit megtévesztő az a megfogalmazás, hogy "jövevényszónak sem tekinthető".

(Profi vagy abban, hogy objektív(nek tűnő), vitathatatlan(nak tűnő), "tudományos" módon fogalmazz meg valamit ("láthatóan", "tekinthető"), de ettől ez még nem lesz objektív igazság, csak a te szerény véleményed, amely ez esetben – úgy tűnik – hiányos ismeretekre támaszkodott.)

jan. 10. 07:53
Hasznos számodra ez a válasz?
 17/39 anonim ***** válasza:
100%

Azt azért nem lehet mondani, hogy a nyelvészetnek nincs semmi köze a programozáshoz. Pl. a generatív nyelvtan és a formális nyelvek, amik a fordítóprogramok (compilerek) alapját képezik, Chomsky munkásságára épülnek, aki az egyik legnagyobb ma élő nyelvész.

Nyilván egy programozási nyelv más, mint egy beszélt természetes nyelv, de hasonlóan analizálható mindkettő, felbontható elemekre, tokenekre, különböző funkciójú részekre.


Aki azt mondja, hogy semmi köze a neylvészetnek a programozáshoz, az tuti nem végzett egyetemet.

jan. 10. 09:27
Hasznos számodra ez a válasz?
 18/39 anonim ***** válasza:

"fonetika, morfológia, pragmatika nincsen, egy-egy utasításnak mondjuk kontextusa nincs"

Fonetika valóban nincs, de morfológia van, hiszen pl. egy utasítás felbontható akár függvénynév, paraméterlista vagy objektumok esetén metódus alapján, illetve pragmatika is, mert pl ha egy függvénynek nincs explicit dekarálva a visszatérési típusa, de a return után "blablabla" szerepel, akkor egyértelmű, hogy string típusú a függvény. Ez persze nyelvtől függ, mert pl egy C++ esetén kötelező megadni a típust.


És kontextus meg pláne van. Egy this kulcsszó teljesen mást fog jelenteni egyik objektumban, mint a másikban. Ugyanígy egy változó lehet lokális vagy globális és akár teljesen más típusú az egyik scope-ban, mint a másikban.

jan. 10. 09:40
Hasznos számodra ez a válasz?
 19/39 A kérdező kommentje:

14-es [ 21:04] te nagyon sokat hazudsz. Azt vettem észre, hogy nálad valami komoly defekt lehet.


Három nyelvet senki nem beszél anyanyelvi szinten. Aki meg sok (legalább öt-hat) nyelvet beszél, az már elég erősen képben van nyelvészeti kérdésekben, legalábbis egy olyan átlagemberhez képest, aki történetesen nem nyelvész. Nem is sorolom tovább, hogy mi másban tévedsz, mert csak ostoba módon okoskodsz, bornírt hülyeségeket állítasz, vég nélkül.

jan. 10. 18:22
 20/39 BringaManó ***** válasza:
100%

Miért lenne otthon a nyelvészetben, aki akárhány nyelvet tud? :-o

_Egy_ nyelv megtanulásához nem kell nyelvészetet tudni (illetve a nyelvtanulásból sem fakad, hogy megtanulná a nyelvészetet az illető). Kettőhöz(/ből) pont annyira nem. Többhöz miért kéne?...

Minél több nyelvet tud valaki, annál több olyan dolgot tud, persze, aminek egy részét a nyelvészek is, de attól az még nem ugyanaz, csak kis átfedés van.


Én nem vagyok nyelvész, csak halovány fogalmam van a témáról, "műkedvelő amatőrként". :-) Te mennyit tudsz a nyelvészetről, milyen szinten, honnan?

jan. 10. 19:42
Hasznos számodra ez a válasz?
1 2 3 4

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!