Dynamisk programmeringsspråk
Dynamisk programmering referert til i programvareteknikken en klasse på høyt nivå språk , som kjøretiden utfører aktiviteter, ikke de andre programmeringsspråkene eller kompileringstiden . Disse aktivitetene inkluderer for eksempel utvidelse av programmet i løpet av kjøretiden. Disse aktivitetene kan også simuleres på andre programmeringsspråk, men i dynamiske programmeringsspråk støttes de direkte av språket.
Grenser for definisjonen av dynamiske programmeringsspråk
Avgrensningen av dynamiske programmeringsspråk fra andre er ikke nøyaktig. Begreper som kompileringstid og kjøretid er uskarpe når du for eksempel bruker virtuelle maskiner eller just-in-time kompilering . Videre tilbyr mange programmeringsspråk muligheten for å manipulere bytekode eller maskinspråk på en eller annen måte . På den annen side er dynamiske programmeringsspråk for det meste, men ikke alltid, dynamisk skrevet .
Generelt er tildelingen av et programmeringsspråk til de dynamiske programmeringsspråkene mindre basert på dets evne til å implementere dynamiske konsepter, men heller på grunnlag av den enkle bruken av dynamiske teknikker i dette programmeringsspråket.
Eksempler
Følgende programmeringsspråk er ofte ansett som dynamiske programmeringsspråk:
- ActionScript
- BeanShell
- Vanlige Lisp og andre Lisp dialekter
- Groovy
- JavaScript
- Julia (programmeringsspråk)
- Matlab
- Lua
- Mål-C
- Perle
- PHP
- python
- Rubin
- Småprat
- Tcl
- VBScript
Implementering av dynamiske konsepter
- Evaluer
- Noen dynamiske programmeringsspråk tilbyr en eval funksjon. Denne funksjonen (høyere orden) overtar en hvilken som helst funksjon, og om nødvendig passende aktuelle parametere, bruker disse på dem og leverer beregningsresultatet. Siden eval kan beregne alt som kan beregnes, kalles det en universell funksjon.
- Objektendringer ved kjøretid
- Typer eller objektsystemer kan endres i dynamiske programmeringsspråk ved kjøretid. For eksempel kan nye objekter opprettes ved hjelp av mixins basert på eksisterende objekter . Eller arvetreet endres ved kjøretid.
- Funksjonell programmering
- Funksjonelle konsepter støttes ofte av dynamiske programmeringsspråk. For eksempel er nedleggelser vanligvis en del av dynamiske programmeringsspråk, mens fortsettelser ofte ikke støttes.
- speilbilde
- Refleksjon (engl. Reflection ) og introspeksjon (engl. Introspection ) støttes vanligvis av dynamiske programmeringsspråk. For eksempel, i Lisp's S-Expressions, blir koden evaluert og modifisert som en datastruktur.
- Makroer
- Noen dynamiske programmeringsspråk kombinerer introspeksjon og evals i makroer . Dynamiske programmeringsspråk bruker makroer for å påvirke prosessen med å lage det abstrakte syntaks-treet i kompilatoren og dermed tillate direkte metaprogrammering . Hovedrepresentanten er Lisp.
weblenker
- Introduksjon til dynamiske programmeringsspråk på lesscode.de , initiativ for å fremme smidige teknologier
Individuelle bevis
- ↑ Sol: Bruke JavaScript som et ekte programmeringsspråk ( Minne til originalen fra 10. august 2017 i Internettarkivet ) Info: Arkivkoblingen ble satt inn automatisk og er ennå ikke sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. . Der: "Begrepet dynamisk programmeringsspråk beskriver en klasse programmeringsspråk som deler en rekke vanlige kjøretidskarakteristikker som bare er tilgjengelige på statiske språk under kompilering, hvis i det hele tatt."
- ^ Formørkelse: Verktøysett for dynamiske språk .
- ↑ Active: Løsninger for Dynamic Language Support, Management, og Compliance ( Memento av den opprinnelige fra 12 juni 2010 i Internet Archive ) Omtale: The arkivet koblingen ble automatisk satt inn og ennå ikke kontrollert. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. .
- ↑ Spring Framework: Dynamisk språkstøtte .
- ↑ Groovy - offisielle nettsted ( minnesmerke av den opprinnelige fra 02.03.2014 i Internet Archive ) Omtale: The arkivet koblingen ble satt inn automatisk og har ennå ikke blitt sjekket. Vennligst sjekk originalen og arkivlenken i henhold til instruksjonene, og fjern deretter denne meldingen. .