Product Design, Manufacturing & Innovation Resources
Heim » Lexikalische Scoping in R

Lexikalische Scoping in R

1980
  • Gerald Jay Sussman
  • Guy L. Steele Jr.
Computerprogrammierer, der lexikalisches Scoping in der Programmiersprache R demonstriert.

(Abbildung dient nur zur Veranschaulichung)

R verwendet lexikalisches Scoping, ein Konzept, das aus der Scheme-Sprache übernommen wurde. Das bedeutet, dass die Werte freier Variablen in einer Funktion aufgelöst werden, indem sie in der Umgebung gefunden werden, in der die Funktion definiert wurde, und nicht in der Umgebung, in der sie aufgerufen wird. Dies macht das Funktionsverhalten vorhersehbarer und unabhängig vom Aufrufkontext – ein Schlüsselmerkmal der funktionalen Programmierung.

Lexikalischer Gültigkeitsbereich, auch statischer Gültigkeitsbereich genannt, ist eine grundlegende Konvention zum Nachschlagen von Variablennamen in einer Datenbank. ProgrammierspracheIn R sucht eine Funktion, die auf eine nicht lokal definierte Variable (eine „freie Variable“) zugreifen muss, in der Umgebung, in der die Funktion erstellt wurde. Diese „Erstellungsumgebung“ ist fest mit der Funktion verknüpft. Dies unterscheidet sich von der dynamischen Gültigkeitsdauer, die in einigen älteren Sprachen verwendet wurde. Dort wurde die Suche entlang der Aufrufkette der Funktion (der „Aufrufumgebung“) fortgesetzt.

Betrachten wir beispielsweise eine Funktion `f()`, die eine Variable `x` verwendet, diese aber nicht definiert. Wenn `f()` in der globalen Umgebung definiert ist, in der `x` den Wert 10 hat, verwendet `f()` unabhängig vom Aufrufort immer `x = 10`. Selbst wenn sie von einer anderen Funktion aufgerufen wird, die ein eigenes lokales `x = 20` hat, ignoriert `f()` das `x` der aufrufenden Umgebung und verwendet das aus ihrer Definitionsumgebung. Dieses Verhalten erleichtert das Debuggen und Nachvollziehen des Codes, da das Verhalten einer Funktion ausschließlich durch ihren eigenen Code und die Umgebung, in der sie definiert wurde, bestimmt wird.

This feature is crucial for functional programming paradigms, enabling powerful constructs like closures, where a function can “remember” the environment in which it was created. This is heavily utilized in advanced R programming and package development, such as in the `lapply` family of functions and in frameworks like Shiny for web applications.

UNESCO Nomenclature: 1203
- Computerwissenschaften

Typ

Abstraktes System

Störung

Inkremental

Verwendung

Weitverbreitete Verwendung

Vorläufer

  • The concept of scope in programming languages
  • Die Programmiersprache Lisp und ihre Dialekte
  • Die Programmiersprache Scheme, die lexikalisches Scoping populär machte
  • Lambda-Kalkül as a theoretical foundation for functions and scope

Anwendungen

  • Erstellung von Closures in R für die funktionale Programmierung
  • Entwicklung von Paket-Namespaces zur Vermeidung von Variablenkonflikten
  • Ermöglichung nicht standardmäßiger Auswertungstechniken, die in Paketen wie dplyr verwendet werden
  • Erstellen von robustem und modularem Code ohne Nebenwirkungen

Patente:

    Potenzielle Innovationsideen

    • eine sichere R-Umgebung zum Sandboxing von nicht vertrauenswürdigem Code mithilfe von Bereichsmanipulation
    • ein Debugging-Tool, das die lexikalische Gültigkeitskette für jede Funktion visualisiert
    • eine domänenspezifische Sprache für Finanzverträge, die Closures zur Darstellung von Zuständen verwendet
    • ein pädagogisches Tool zum Vermitteln von Programmierkonzepten mithilfe der interaktiven Bereichserkundung
    • ein paralleles Computing-Framework, das variable Bereiche über Knoten hinweg automatisch verwaltet
    • A Just-in-Time Compiler for R that heavily optimizes based on static scope analysis
    • ein Paket zum Erstellen eigenständiger, reproduzierbarer Analyseobjekte mit eingebetteten Daten und Funktionen
    • ein System zur Versionierung des Funktionsverhaltens durch Erfassung und Wiederherstellung ihrer Definitionsumgebungen
    • Ein Linter, der potenzielle Fehler erkennt, die durch missverstandene Gültigkeitsbereichsregeln entstehen
    • eine Bibliothek zum Erstellen benutzerdefinierter, isolierter Evaluierungsumgebungen für Testzwecke
    Verwandt mit: lexikalischer Gültigkeitsbereich, statischer Gültigkeitsbereich, funktionale Programmierung, R, Scheme, Umgebung, Closure, freie Variable, Namensraum, nicht standardkonforme Auswertung.

    Historischer Kontext

    Lexikalische Scoping in R

    1973
    1980
    1980
    1980
    1980
    1986-01-01
    1990
    1970-01-01
    1975-06-01
    1980
    1980
    1980
    1982-07-01
    1988-06-01
    1990

    (wenn das Datum unbekannt oder nicht relevant ist, z. B. „Strömungsmechanik“, wird eine gerundete Schätzung seines bemerkenswerten Auftretens bereitgestellt)

    10. Jahr Jubiläum

    Bilder in voller Größe und Downloads sind nur für registrierte Mitglieder 100% kostenlos verfügbar.

    > Login <