Pavun kuori

BeanShell on dynaaminen skriptikieli varten Java - VM by Pat Niemeyer . Sen avulla tulkki suorittaa käytännössä muuttumattoman Java-koodin . Kuten Pythonissa tai Perlissä , koodi käännetään etukäteen abstraktiksi syntaksipuuksi (AST). BeanShelliä käytetään usein makrojen kielenä , esimerkiksi tekstieditorissa jEdit , Apache JMeterissä ja Apache ANT: ssä .

Klassisen Java-syntaksin lisäksi BeanShell tarjoaa joitain komentosarjakielille tyypillisiä yksinkertaistuksia, kuten dynaaminen kirjoittaminen staattisen kirjoittamisen sijaan , globaalit muuttujat ja toiminnot , (rajoitettu) refleksiivinen pääsy itse ohjelmaan ja vastaaviin. Syntaksi on hyvin samanlainen kuin alkuperäisessä Javassa, mikä helpottaa Java-ohjelmoijien vaihtamista kahden kielen välillä tai kääntämistä. Koska BeanShell pystyy perimään olemassa olevista Java- luokista tai toteuttamaan mahdollisia rajapintoja , sitä voidaan käyttää hyvin yhdessä olemassa olevien kehysten ja sovellusten kanssa.

BeanShell laajentaa Java-syntaksia erityisesti seuraavissa kahdessa kohdassa, jolloin on saavutettava suurempi tuottavuus.

  • Menetelmiä (toiminnot) voivat itse sisältää menetelmiä ja nostaa itseään sulkeminen kautta paluuta thisettä objektin .
  • Toinen erityispiirre on prototype- perustuu olio , joka on käytettävissä lisäksi luokkakohtaiset yksi .

Koodi siirrettiin Apache Foundationille, mutta se ei saavuttanut projektin tilaa siellä.

Versiosta 2.0b6 5. helmikuuta 2016 alkaen versiota ei julkaistu. Kieli on kuitenkin vakaa. Toistaiseksi BeanShell tukee vain muutamia Java 1.5: n syntaktisista innovaatioista.

BeanShell2 - niminen spin-off tapahtui toukokuussa 2007 Google Codessa . Projekti on julkaissut useita korjauksia ja parannuksia BeanShelliin. Molemmat versiot pyritään yhdistämään uudelleen.

Vaihtoehtoja BeanShell ovat Groovy , Jacl varten Tcl , Rhino ja JavaScript , Jython varten Python ja JRuby varten Ruby , jolloin Groovy, Jython ja JRuby, toisin kuin BeanShell, ovat molemmat yleiskäyttöinen kieliä ja ohjelmointikieliä. Groovy-syntakse, kuten BeanShell, on Java-yhteensopiva, mutta tarjoaa myös laajennuksia, kuten merkkijonojen interpolointia tai DSL- tukea.

nettilinkit