Was mir noch nicht ganz klar geworden ist...

Benutzeravatar
Alp.traum
Mausschubser
Mausschubser
Beiträge: 85
Registriert: 3. Feb 2004 15:15
Wohnort: Darmstadt
Kontaktdaten:

Was mir noch nicht ganz klar geworden ist...

Beitrag von Alp.traum »

Da die Möglichkeiten einen Interpreter zu bauen glücklicherweise sehr überschaubar sind, würde ich mich freuen wenn jemand schnell für jede Kombination eine Zusammenfassung zum Besten gibt und alle gegenseitig in Beziehung setzt. Am Besten jeweils mit Überblick über:

* Möglichkeiten bei Rekursion
* Call-by-name, Call-by-need
* Call-by-value, Call-by-reference
* Substitution vs. Evaluation vs. Reduction
* Variablen, Boxen
* Umgebungen, States


Hier mal kurz die Liste der möglichen Kombinationen:

statically scoped immediate eager evaluation with first order functions with continuations
statically scoped immediate lazy evaluation with first order functions with continuations
statically scoped deferred eager evaluation with first order functions with continuations
statically scoped deferred lazy evaluation with first order functions with continuations
dynamically scoped immediate eager evaluation with first order functions with continuations
dynamically scoped immediate lazy evaluation with first order functions with continuations
dynamically scoped deferred eager evaluation with first order functions with continuations
dynamically scoped deferred lazy evaluation with first order functions with continuations
statically scoped immediate eager evaluation with first class functions with continuations
statically scoped immediate lazy evaluation with first class functions with continuations
statically scoped deferred eager evaluation with first class functions with continuations
statically scoped deferred lazy evaluation with first class functions with continuations
dynamically scoped immediate eager evaluation with first class functions with continuations
dynamically scoped immediate lazy evaluation with first class functions with continuations
dynamically scoped deferred eager evaluation with first class functions with continuations
dynamically scoped deferred lazy evaluation with first class functions with continuations
statically scoped immediate eager evaluation with first order functions without continuations
statically scoped immediate lazy evaluation with first order functions without continuations
statically scoped deferred eager evaluation with first order functions without continuations
statically scoped deferred lazy evaluation with first order functions without continuations
dynamically scoped immediate eager evaluation with first order functions without continuations
dynamically scoped immediate lazy evaluation with first order functions without continuations
dynamically scoped deferred eager evaluation with first order functions without continuations
dynamically scoped deferred lazy evaluation with first order functions without continuations
statically scoped immediate eager evaluation with first class functions without continuations
statically scoped immediate lazy evaluation with first class functions without continuations
statically scoped deferred eager evaluation with first class functions without continuations
statically scoped deferred lazy evaluation with first class functions without continuations
dynamically scoped immediate eager evaluation with first class functions without continuations
dynamically scoped immediate lazy evaluation with first class functions without continuations
dynamically scoped deferred eager evaluation with first class functions without continuations
dynamically scoped deferred lazy evaluation with first class functions without continuations

Vielen Dank! ;)

Pavel
Windoof-User
Windoof-User
Beiträge: 37
Registriert: 21. Okt 2006 23:42

Re: Was mir noch nicht ganz klar geworden ist...

Beitrag von Pavel »

es ist besser das ganze topologisch zu betrachten. ohne gewähr:

eager-substitution, erlaubt:
- recursion: self-replicating copy

lazy substitiution, erlaubt:
- lazy evaluation: fewest number of evaluations
- call by need: resolves re-evaluation
- recursion: cyclic environment

bei beiden geht noch:
- call by value
- call by reference
- deferred substitution

dann gelten noch diese abhängigkeiten: (a hängt ab von b = a <- b)
lazy substitution <- fclosure (umgebung)
lazy evaluation <- eclosure (umgebung)
variablen <- boxen <- state <- v*store
call by need <- deferred substitution

Substitution vs. Evaluation vs. Reduction:
reduction wurde AFAIK erst in der letzten vorlesung zur verwirrung eingeführt.
substitution: löst namen auf
evaluation: wertet ausdrücke aus

Benutzeravatar
Aaron
Windoof-User
Windoof-User
Beiträge: 25
Registriert: 24. Mai 2004 20:09
Wohnort: Darmscht
Kontaktdaten:

Re: Was mir noch nicht ganz klar geworden ist...

Beitrag von Aaron »

The very first one, statically scoped immediate eager evaluation with first order functions, seems hairy to me. :)

EDIT: no, it doesn't anymore. :) I just oversaw, that immediate substitution doesn't require closures.
If there's one thing I've learned in all my days ... it's that if knowledge is power, then the internet is full of completely useless power. Think about it. —Brett Erlich

Antworten

Zurück zu „Archiv“