Rövid útmutató a JVM nyelvekhez

1. Bemutatkozás

A Java mellett más nyelvek is futhatnak a Java virtuális gépen, például Scala, Kotlin, Groovy, Clojure.

A következő szakaszokban magas szintű pillantást vetünk a legnépszerűbb JVM nyelvekre.

Természetesen a JVM nyelvek - Java - elődjével kezdjük.

2. Java

2.1. Áttekintés

A Java egy általános célú programnyelv, amely magában foglalja az objektumorientált paradigmát.

A nyelv alapvető jellemzője a platformok közötti hordozhatóság, ami azt jelenti, hogy egy platformra írt programok futtathatóak a szoftver és a hardver bármely kombinációján, megfelelő futásidejű támogatással. Ez úgy érhető el, hogy először a kódot bytecode-ba fordítja, nem pedig közvetlenül a platform-specifikus gépi kódra.

A Java bájtkód utasításai analógak a gép kódjával, de azokat a Java virtuális gép (JVM) értelmezi, amely a gazdagép operációs rendszerére és a hardver kombinációjára jellemző.

Noha eredetileg objektum-orientált nyelv, a Java elkezdett más programozási paradigmákból, például a funkcionális programozásból származó fogalmakat átvenni.

Vessünk egy gyors pillantást a Java néhány főbb jellemzőjére:

  • Objektum orientált
  • Erősen statikusan gépelt
  • Platformfüggetlen
  • Szemétgyűjtés
  • Többszálas

2.2. Példák

Lássuk, milyen egyszerű egy „Hello, Világ!” példa a következőképpen néz ki:

public class HelloWorld {public static void main (String [] args) {System.out.println ("Hello, Világ!"); }}

Ebben a példában létrehoztunk egy nevű osztályt Helló Világ és meghatározta a fő módszert, amely üzenetet nyomtat a konzolra.

Következő, használjuk a javac parancs a bájtkód előállításához amely végrehajtható egy JVM-en:

javac HelloWorld.java

Végül, a Jáva parancs végrehajtja a létrehozott bytecode-ot a JVM-en:

java HelloWorld

További Java példákért tekintse meg az oktatóanyagok listáját.

3. Scala

3.1. Áttekintés

A Scala jelentése „méretezhető nyelv”. A Scala egy statikusan tipizált nyelv, amely két fontos programozási paradigmát ötvöz, nevezetesen az objektum-orientált és a funkcionális programozást.

A nyelv 2004-ben keletkezett, de az utóbbi években egyre népszerűbb lett.

A Scala egy tiszta objektum-orientált nyelv nem támogatja a primitíveket. A Scala lehetővé teszi osztályok, objektumok, módszerek meghatározását a funkcionális programozási funkciókkal együtt, mint például tulajdonságok, algebrai adattípusok vagy típusosztályok.

A Scala néhány fontos jellemzője:

  • Funkcionális, objektum-orientált
  • Erősen statikusan gépelt
  • Algebrai adattípusok
  • Mintaillesztés
  • Továbbfejlesztett változtathatósági támogatás
  • Lusta számítás
  • Többszálas

3.2. Példák

Először vessünk egy pillantást ugyanarra a „Hello, Világ!” példa, mint korábban, ezúttal Scalában:

objektum HelloWorld {def main (args: Array [String]): Unit = println ("Hello, world!")}

Ebben a példában létrehoztunk egy szingulett objektumot Helló Világ és a fő- módszer.

Ezt követően ennek összeállításához használhatjuk skalac:

scalac HelloWorld.scala

A scala parancs végrehajtja a létrehozott bytecode-ot a JVM-en:

scala HelloWorld

4. Kotlin

4.1. Áttekintés

A Kotlin egy statikusan tipizált, általános célú, nyílt forráskódú nyelv, amelyet a JetBrains csapata fejlesztett ki, amely összefogja az Objektumorientált és funkcionális paradigmákat.

A Kotlin fejlesztése során a fő hangsúly a Java interoperabilitására, a biztonságra (kivételkezelésre), tömörségre és a szerszámok jobb támogatására irányult.

Az Android Studio 3.0 megjelenése óta a Kotlin a Google által teljes mértékben támogatott programozási nyelv az Android platformon. Ez az Android Studio IDE csomagban is szerepel, a standard Java fordító alternatívájaként.

Néhány fontos Kotlin jellemző:

  • Objektumorientált + Funkcionális
  • Erősen statikusan gépelt
  • Tömör
  • Kompatibilis a Java-val

A Kotlin bemutatkozása további részleteket tartalmaz a funkciókról.

4.2. Példák

Lássuk a „Hello, Világ!” példa Kotlinban:

fun main (args: Array) {println ("Helló, világ!")}

A fenti kódot egy új fájlba írhatjuk helloWorld.kt.

Azután, használjuk a kotlinc parancsot ennek összeállításához és generál egy bájtkódot, amely végrehajtható egy JVM-en:

kotlinc helloWorld.kt -include-futásidejű -d helloWorld.jar

A -d opcióval jelzi a kimeneti fájlt osztály fájlok vagy a .befőttes üveg fájl név. A - futásidőt is tartalmaz opció teszi az eredményt .befőttes üveg a fájl önálló és futtatható a Kotlin futásidejű könyvtár beillesztésével.

Aztán a Jáva parancs végrehajtja a létrehozott bytecode-ot a JVM-en:

java -jar helloWorld.jar

Lássunk még egy példát az elemek listájának a a használatával történő kinyomtatására mert hurok:

fun main (args: Array) {val items = listOf (1, 2, 3, 4) for (i in items) println (i)}

5. Groovy

5.1. Áttekintés

Groovy egy objektumorientált, opcionálisan tipizált, dinamikus tartományspecifikus nyelv (DSL), a statikus gépelés és a statikus fordítás képességeinek támogatásával. Célja a fejlesztői termelékenység javítása, könnyen megtanulható szintaxissal.

A Groovy könnyen integrálható bármilyen Java programba és azonnal hozzáad olyan hatékony szolgáltatásokat, mint a szkriptelési képességek, a futásidejű és a fordítási idejű meta-programozás és a funkcionális programozási szolgáltatások.

Emeljünk ki néhány fontos tulajdonságot:

  • Objektumorientált funkcionális funkciókkal, mint például magasabb rendű funkciók, curry, zárások
  • Gépelés - dinamikus, statikus, erős, kacsa
  • Tartományspecifikus nyelv
  • Interoperabilitás a Java-val
  • Termelékenység tömörséggel
  • A kezelő túlterhelése

5.2. Példák

Először nézzük meg a "Hello, World!" példa a Groovy-ban:

println ("Hello world")

A fenti kódot egy új fájlba írtuk HelloWorld.groovy. Most kétféleképpen futtathatjuk ezt a kódot: fordítással, majd végrehajtással vagy csak lefordítatlan kód futtatásával.

Összeállíthatjuk a .groovy fájl segítségével groovyc parancsot az alábbiak szerint:

groovyc HelloWorld.groovy

Akkor használjuk a Jáva parancs a groovy kód végrehajtására:

java -cp \ embeddable \ groovy-all-.jar ;. Helló Világ

Például a fenti parancs a következőképpen nézhet ki:

java -cp C: \ utils \ groovy-1.8.1 \ embeddable \ groovy-all-1.8.1.jar ;. Helló Világ

Lássuk azt is, hogyan használhatjuk a groovy parancsot a .groovy fájl fordítás nélkül:

groovy HelloWorld.groovy

Végül, itt van egy másik példa az indexes elemek listájának kinyomtatására:

list = [1, 2, 3, 4, 5, 6, 7, 8, 9] list.eachWithIndex {it, i -> println "$ i: $ it"}

Vessen egy pillantást a Groovy további példáira bevezető cikkünkben.

6. Clojure

6.1. Áttekintés

Clojure egy általános célú funkcionális programozási nyelv. A nyelv a JVM-en, valamint a Microsoft Common Language Runtime-en fut. A Clojure még mindig lefordított nyelv, dinamikus marad, mivel a szolgáltatásait futás közben támogatják.

A Clojure tervezői modern Lisp-t akartak megtervezni, amely a JVM-en futtatható. Ezért is ismert a Lisp programozási nyelv dialektusaként. A Lisps-hez hasonlóan a Clojure is kódként kezeli a kódot, és rendelkezik makrórendszerrel is.

Néhány fontos Clojure funkció:

  • Funkcionális
  • Gépelés - Dinamikus, Erős, a közelmúltban kezdte el támogatni a fokozatos gépelést
  • Párhuzamosságra tervezték
  • Futásidejű polimorfizmus

6.2. Példák

A JVM többi nyelvétől eltérően nem egyszerű a „Hello, Világ!” Egyszerű létrehozása. program Clojure-ban.

A példánk futtatásához a Leiningen eszközt fogjuk használni.

Először létrehozunk egy egyszerű projektet alapértelmezett sablonnal a következő paranccsal:

lein új hello-world

A projekt a következő fájlstruktúrával készül:

./project.clj ./src ./src/hello-world ./src/hello-world/core.clj

Most frissítenünk kell a ./project.ctj fájl a következő tartalommal a fő forrás fájl beállításához:

(defproject hello-world "0.1.0-SNAPSHOT": main hello-world.core: dependencies [[org.klojure / clojure "1.5.1"]])

Most arra készülünk, hogy frissítsük kódunkat, hogy kinyomtassuk a „Hello, Világ!” ban,-ben ./src/hello-world/core.clj fájl:

(ns hello-world.core) (defn -main [& args] (println "Helló, világ!"))

Végül használjuk a lein parancs a fenti kód végrehajtására, miután áthelyezte a projekt gyökérkönyvtárába:

cd hello-world lein run

7. Egyéb JVM nyelvek

7.1. Jython

Jython a Python Java platform implementációja amely a JVM-en fut.

Ezt a nyelvet eredetileg arra tervezték, hogy lehetővé tegye a nagy teljesítményű alkalmazások írását az interaktivitás feláldozása nélkül. A Jython objektumorientált, többszálú, és a Java szemétgyűjtőjét használja a memória hatékony tisztításához.

A Jython tartalmazza a Python nyelv részét képező modulok nagy részét. Ezenkívül bármilyen osztályt importálhat és használhat a Java könyvtárakból.

Lássunk egy gyors „Hello, Világ!” példa:

print "Hello, világ!"

7.2. JRuby

A JRuby a Ruby programozási nyelv implementációja, amely a Java virtuális gépen futtatható.

A JRuby nyelv nagy teljesítményű és többszálú, a Java és a Ruby könyvtárak széles választékával rendelkezik. Ezenkívül ötvözi mindkét nyelv jellemzőit, például az objektum-orientált programozást és a kacsa-gépelést.

Nyomtassuk ki a „Hello, Világ!” a JRuby-ban:

"java" stringHello = "Hello World" igényel "# {stringHello.to_s}"

8. Következtetés

Ebben a cikkben számos népszerű JVM nyelvet tanulmányoztunk az alapvető kód példákkal együtt. Ezek a nyelvek különböző programozási paradigmákat valósítanak meg, például objektum-orientált, funkcionális, statikus és dinamikus gépelést.

Eddig azt mutatja, hogy még a JVM 1995-ig nyúlik vissza, még mindig rendkívül releváns és vonzó platform a mai programozási nyelvek számára.


$config[zx-auto] not found$config[zx-overlay] not found