BeanShell
BeanShell er et dynamisk skriptspråk for Java - VM av Pat Niemeyer . Det gjør at nesten uendret Java-kode kan utføres av en tolk . Som med Python eller Perl , blir koden oversatt til et abstrakt syntaks-tre (AST) på forhånd . BeanShell brukes ofte som et språk for makroer , for eksempel i tekstredigereren jEdit , i Apache JMeter og i Apache ANT .
I tillegg til klassisk Java-syntaks , tilbyr BeanShell noen av forenklingene som er typiske for skriptspråk som dynamisk skriving i stedet for statisk skriving , globale variabler og funksjoner , (begrenset) refleksiv tilgang til selve programmet og lignende. Syntaksen er veldig lik den originale Java, noe som gjør det enkelt for Java-programmerere å bytte mellom de to språkene eller å oversette. Siden BeanShell er i stand til å arve fra eksisterende Java- klasser eller implementere grensesnitt , kan den brukes godt sammen med eksisterende rammer og applikasjoner.
BeanShell utvider Java-syntaksen, spesielt i de følgende to punktene, hvor en høyere produktivitet skal oppnås.
-
Metoder (funksjoner) kan i seg selv inneholde metoder og heve seg selv som lukking via retur av
thistil objektet . - Et annet særtrekk er den prototype- basert objektorientering som er tilgjengelige i tillegg til de klassebaserte .
Koden ble overført til Apache Foundation, men nådde ikke prosjektstatus der.
Fra versjon 2.0b6 5. februar 2016 ble ingen flere versjoner publisert. Språket er imidlertid stabilt. Så langt støtter BeanShell bare noen få av de syntaktiske innovasjonene i Java 1.5.
En spin-off med navnet BeanShell2 fant sted i mai 2007 på Google Code . Prosjektet har gitt ut en rekke reparasjoner og forbedringer av BeanShell. Det arbeides for å bringe de to versjonene sammen igjen.
Alternativer til BeanShell er Groovy , Jacl for Tcl , Rhino for JavaScript , Jython for Python og JRuby for Ruby , hvor Groovy, Jython og JRuby, i motsetning til BeanShell, begge er språk for generelle formål og skriptspråk. I likhet med BeanShell er Groovy-syntaksen Java-kompatibel, men tilbyr også utvidelser som strenginterpolering eller DSL- støtte.
weblenker
- Hjemmeside (engelsk)
- Kildekode på Github
- JSR 274 ønsker å standardisere BeanShell
- BeanShell2 delt etter at arbeidet med hovedprosjektet ble stoppet, eller Beanshell2 støtter bare lesetilgang siden Google Code
- JEP 222: jshell (engelsk)