Brainstorming VL06 Luepke
Aus ProgrammingWiki
Abbildung oder Funktion $f$ ist immer eine rechtseindeutige Relation $f \subseteq X \times Y$, welche auch $f(x) = y$ geschrieben werden kann. Für jedes $x \in X$ existiert maximal ein $y\in Y$ (umgekehrt gilt das nicht!). Derartige Abbildungen sind also immer surjektiv.
Definitionsbereich einer Funktion
Kreativaufgabe: in der Mathematik werden Werte, für die $f(x)$ nicht definiert ist, aus dem Definitionsbereich ausgeschlossen um die Funktion total zu machen. Wie könnte das für Spezialfälle in der Programmierung umgesetzt werden? Hierfür müssen Verabredungen getroffen werden:
- Um leichter ausmachen zu können, wann eine Prozedur "nicht definiert" zurück gibt, kann die Endlosrekursion in eine eigene Prozedur ausgelagert werden, welche stets "nicht definiert" zurück gibt, also nie stoppt.
- Der Aufruf dieser Prozedur wird ausschließlich als Rückgabewert einer Prozedur verwendet!
Ein Analysetool kann nun Programme untersuchen, die diesem Schema folgen und Aussagen über die Definitionsbereiche treffen. Dieses Beispiel ist sehr rudimentär, zeigt aber, wie sich z.B. Entwickler von Low-Code-Plattformen, mit denen Software maschinell, um ein Grundgerüst von Prozeduren herum, generiert wird, gegen ungewollte Effekte schützen.
nd.py
analyzer.py
program.py