J (programozási nyelv)

J
Szemantika funkcionális
Nyelvóra programozási nyelv , funkcionális programozási nyelv , dinamikus programozási nyelv , függvényszintű nyelv [d] , vektoros programozási nyelv [d] , hallgatólagos programozási nyelv [d] , objektumorientált programozási nyelv , többparadigmás programozási nyelv és értelmezett programozási nyelv
A végrehajtás típusa tolmács
Megjelent 1990
Szerző Kenneth Iverson és Roger Hui
Fejlesztő Kenneth Iverson [1] és Roger High [d] [1]
Fájlkiterjesztés _ .ijs
Kiadás J903 (2021. december 16. ) ( 2021-12-16 )
Teszt verzió J904 (2021. december ) ( 2021-12 )
Típusrendszer dinamikus
Befolyásolva Premier League , FP , FL
befolyásolta K
Engedély GNU GPL
Weboldal jsoftware.com
Nem tévesztendő össze a J++- val vagy a J# -val .

A J  egy funkcionális vektoros programozási nyelv , az APL dialektusa , amely a prototípussal ellentétben nem igényel speciális billentyűzetkiosztást a matematikai szimbólumok beviteléhez (csak ASCII karaktereket használ ).

Az 1990- es évek elején az APL alkotója, Kenneth és Roger Huiki John FP FL kombinatorikus nyelveinek ötletei .  Főbb jellemzői a MIMD utasításokra való összpontosítás, a funkcionális megközelítés ( a változók teljesen kizártak, helyettük az átnevezési mechanizmus és a kombinátorok működnek ).

Számos ötletet és paradigmát egyesít , miközben tisztán funkcionális nyelv  - az érték átadásának egyetlen módja az, hogy függvényhívás eredményeként fogadjuk, és paraméterként adjuk át a függvénynek. Nagy hangsúlyt fektet az adatfeldolgozásra.

Az egyetlen kifejlesztett teljes értékű J interpreter 1994-2010 között nem volt ingyenes , 2011. március 6-án a 7. verzió forráskódjai GPL3 licenc alatt nyíltak meg [2] .

Nyelvi fogalmak

A programozás elemeinek leírására J természetes nyelvi nyelvtani terminológiát használ, például az „ige” kifejezést a „függvény” vagy „operátor” kifejezésnek megfelelő értelemben használjuk a C-ben .

J nyelvi kifejezések megfelelése C nyelvi kifejezéseknek:

J nyelvi kifejezés C kifejezés
Ige Funkció vagy operátor
Főnév Egy tárgy
összekötő ige Feladat
írásjel Szétválasztó
Határozószó (#define makró)
Unió (#define makró)

A J mondat minden szavának van egy beszédrésze, amely megfelel a C-beli típusnak. Ez egy ige, főnév, összekötő ige, határozószó, kötőszó vagy írásjel. A beszéd fő részei a főnév, az ige, a határozószó és a kötőszó. A programozó által létrehozott összes név és a J nyelvben meghatározott név (kivéve az összekötő igéket (=. és =:) és az írásjeleket) a beszéd egyik fő részére fog vonatkozni. Az  entitás olyan objektum, amelynek típusa a beszéd egyik fő része. Más szavakkal, az entitás egy határozószó, egy főnév, egy ige vagy egy kötőszó. Az entitások kaphatnak nevet, de legtöbbjüknek nincs neve, és a kifejezés közepén jelennek meg, és azonnal eltűnnek utána, akárcsak a C kifejezés kiértékelésének közbenső eredményei.

A főnév adatokat tartalmaz, az ige egy vagy két főnévre hat, és ennek eredményeként főnevet hoz létre. A határozószó egy igére vagy főnévre operál, hogy lényeget hozzon létre, a kötőszó pedig két főnevet vagy igét, hogy lényeget hozzon létre. A határozókat és a kötőszavakat módosítónak nevezzük. A C-ben a módosítók egy előfeldolgozó makrónak tekinthetők, amely elfogadja a függvényneveket, és olyan kódot tartalmaz, amely meghívja a függvénykódot.

Az írásjelek a J nyelvben a () ' karakterekből és a sorvégi karakterből, valamint az NB határolóból állnak. és néhány különleges szó, mint például ha. és esetek. A J nyelvben nincs több írásjel. Még a karakterek [ ] , . " ; { } igék, a zárójelek [ ] és { } pedig függetlenek, és önmagukban használatosak, nem párban.

Szintaxis

A J végrehajtható egysége egy mondat, amely egy C kifejezésnek felel meg. A J mondathatárolók a sorvégi karakterek (LF) és a vezérlőszavak, mint például az if. A mondat az elválasztók között lévő összes karaktert tartalmazza, és mivel az LF karakter az elválasztó, a J mondatoknak ugyanabba a sorba kell illeszkedniük. Egy mondatot nem lehet két sorra osztani.

Minden megjegyzés karakterrel kezdődik NB. és vége a sor végén. Az észrevételt figyelmen kívül hagyjuk az ajánlat végrehajtása során. A következő lexématípusokat különböztetjük meg a J nyelvben :

  1. Főnév
  2. Ige
  3. Határozószó
  4. Unió

A lexémák és a beszédrészek kapcsolatát a 2. ábra diagramja szemlélteti. — a J nyelv lexémái és szófajok.

A J nyelvű mondat szavai azonosítókra , primitívekre, számokra, írásjelekre és karakterkonstansokra vannak osztva . A szavakat szóközök és tabulátorok választják el. A karakterek "." és a ":" speciális jelentése.

A nevek (azonosítók) a J nyelvben hasonlóak a C nyelvéhez: latin betűvel kezdődnek, megengedik az aláhúzást, megkülönböztetik a kis- és nagybetűket, és csak alfanumerikus karakterekből és aláhúzásjelből állnak. Az aláhúzásjelre végződő és két aláhúzásjelet tartalmazó neveket speciálisan kezeljük, ez a területi beállításnak köszönhető.

Az ASCII grafikus karaktereket (például "+") primitíveknek vagy operátoroknak nevezzük.

Minden grafikus szimbólum új primitívet képezhet a "." vagy ":". Mivel minden primitív fenntartott szó , a "." és a ":" nem megengedett. A primitíveket nem kell szóközzel elválasztani. Minden primitív beszédrésze állandó a J nyelvben. Példák:

++. +: { {: {:: i. i:for. válassza ki. ügy. vége.

Értékelés sorrendje

A J-ben nincs műveleti prioritási táblázat . Minden J nyelv igének ugyanaz a prioritása és megfelelő asszociativitása . A sorrend meghatározásához zárójelek használhatók. A J nyelvben a zárójeleket pontosan úgy értjük, mint a matematikában.

Abban az esetben, ha a bal oldali ige főnévvel rendelkezik, akkor azt diádikusnak értékeljük. Ha nincs jelen, az igét monád igeként értékeli a rendszer, csak egy jobb operandussal. Ismernie kell egy szereplő beszédrészét, hogy megértse az értékelés sorrendjét, például egy mondatban

eredmény=. név1 ige2 5

tudnia kell, hogy name1ige vagy főnév. Abban az esetben, ha ige, a számítás sorrendje name1(verb2(5)), ha pedig főnév, akkor verb2 diadikus és az eredmény (name1 verb2 5).

Minden kötőszó és határozószó elsőbbséget élvez az igékkel szemben, és asszociatív jellegűek .

Főnevek zárójelben

A J nyelvben több szomszédos számot egydimenziós tömbként kezelünk. Abban az esetben, ha több különálló főnévről van szó, zárójelet kell használni.

Nyelvtan

A J lehetővé teszi több szintaktikai fa létrehozását ugyanahhoz a kódsorhoz. Vagyis a nyelv leírásai nem teljesek, nincs kimerítő specifikáció. A J nyelv környezetérzékeny , és a leírására szolgáló szabványos eszközök (például egy nyelvtan Backus-Nauer formában ) nem megfelelőek. Az absztrakt szintaxisfa fogalma még értelmét is veszti, hiszen csak a kontextusmentes nyelvek terén helyes.

Jegyzetek

  1. 1 2 3 4 5 http://www.jsoftware.com/papers/APLPersonalView.htm
  2. J Forrás GPL Archiválva : 2011. március 6.

Irodalom

Linkek