From 0752c3ac46a907f8c124770dbcd21a22d9bd0496 Mon Sep 17 00:00:00 2001 From: NorthScorp UG Date: Wed, 14 Oct 2020 08:30:59 +0200 Subject: [PATCH 1/5] Vorlesung 2 added --- Automaten, Sprachen und Komplexität.md | 73 ++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/Automaten, Sprachen und Komplexität.md b/Automaten, Sprachen und Komplexität.md index afca358..96553e8 100644 --- a/Automaten, Sprachen und Komplexität.md +++ b/Automaten, Sprachen und Komplexität.md @@ -99,3 +99,76 @@ Prioritätsregeln für Operationen auf Sprachen - Konkatenation stärker als Vereinigung/Durchschnitt/Differenz Sprechweise: "Klasse" von Sprachen ( nicht "Menge") + +> Definition: Grammatiken sind ein Mittel um alle syntaktisch korrekten Sätze (hier Wörter) einer Sprache zu erzeugen. +- in spitzen Klammern: Variable +- ohne spitze Klammern: Terminale + +Bsp: +- [Satz]->[Subjekt][Prädikat][Objekt] +- [Subjekt]->[Artikel][Attribut][Substantiv] +- [Artikel]->e | der | die | das + +Eine Folge aus Terminalen nennt man eine Ableitung. Die Ableitung beweist, dass ein Satz zur Sprache gehört, die von der Grammatik erzeugt wird. Mithilfe der Grammatik ist es möglich, unendlich viele Sätze zu erzeugen. + +D.h. die zur Grammatik gehörende Sprache ist unendlich. + +Grammatiken besitzen Regeln der Form: linke Seite -> rechte Seite + +Sowohl auf der linken, als auch auch der rechten Seite können zwei Tpyen von Symbolen vorkommen +- Nicht-Terminale (oder Variablen), aus denen noch weitere Wortbestandteile abgeleitet werden sollen +- Terminale (die "eigentlichen" Symbole) + + +> Definition: Eine Grammatik G ist ein 4-Tupel $G=(V, \sum, P, S)$ das folgende Bedingungen erfüllt +- V ist eine endliche Menge von Nicht-Terminalen oder Variablen +- $\sum$ ist ein Alphabet (Menge der Terminale) mit $V\cap \sum= \veremtpy$, d.h. kein Zeichen ist gleichzeitig Terminal und Nicht-Terminal +- $P\subseteq (V\cup \sum)^+ \times (v\cup\sum)^*$ ist eine endliche Menge von Regeln oder Produktionen (Produktionsmenge) +- $S\in V$ ist das Startsymbol/ die Startvariable oder das Axiom + +Jede Grammatik hat nur endlich viele Regeln! + +Konventionen: +- Variablen sind Großbuchstaben (Elemente aus V) +- Terminale sind Kleinbuchstaben (Elemente aus $\sum$) + +> Definition: Sei $G=(V, \sum, P, S)$ eine Grammatik und seien $u,v\in (V\cup \sum)^+$. Wir schreiben $u\Rightarrow_G v$ falls eine Produktion $(l,r)\in P$ und Wörter $x,y\in(V\cup\sum)^*$ existieren mit $u=xly$ und $v=xry$. + +- Sprechweise: "v wird aus u abgeleitet" +- ist die Grammatik klar, so schreibt man $u\Rightarrow v$ +- für $(l,r)\in P$ schreibt man auch $l\rightarrow r$ + +> Definition: Sei $G=(V, \sum, P, S)$ eine Grammatik. Eine **Ableitung** ist eine endliche Folge von Wörtern +> Ein **Wort** $w\in (V\cup\sum)^*$ heißt Satzform, wenn es eine Ableitung gibt, deren letztes Wort w ist. +> Die **Sprache** $L(G)={w\in \sum^* | S\Rightarrow_G^* w}$ aller Satzformen aus $\sum^*$ heißt von G erzeugte Sprache. + +Dabei ist $\Rightarrow_G^*$ der reflexive und transitive Abschluss von $\Rightarrow_G$. D.h. die von G erzeugte Sprache L(G) besteht genau aus den Wörtern, die in beliebig vielen Schritten aus S abgeleitet werden können und nur aus Terminalen besteht. + +Bemerkung: Für ein $u\in(V\cip\sum)^*$ kann es entweder gar kein, ein oder mehrere v geben mit $u\Rightarrow_G v$. Ableiten ist also kein deterministischer sondern ein nichtdeterministoscher Prozess. Mit anderen Worten: $\Rightarrow_G$ ist keine Funktion. + +Nichtdeterminismus kann verursacht werden durch: +- eine Regel ist an zwei verschiednen Stellen anwendbar +- Zwei verschiedene Regeln sind anwendbar (entweder an der gleichen Stelle oder an verschiedenen Stellen) + +- es kann beliebig lange Ableitungen geben, die nie zu einem Wort aus Terminalsymbolen führt +- manchmal können Ableitungen in einer Sackgasse enden, d.h. obwohl noch nichtterminale in einer Satzformen vorkommen, ist keine Regel mehr anwendbar. + +## Chomsky Hierarchie +. Typ 0 (Chomsky-0): Jede Grammatik ist vom Typ 0 (Semi-Thue-System) +- Typ 1: Eine Regel heißt kontext-sensitiv, wenn es Wörter $u,v,w\in(V\cup\sum)^*,|v|>0$ und ein Nichtterminal $A\in V$ gibt mit $l=uAw$ und $r=uvw$. Eine Grammatik ist vom Typ 1 (oder kontext-sensitiv) falls + - alle Regeln aus P kontext-sensitiv sind + - $(S\rightarrow \epsilon)\in P$ die einzige nicht kontext-sensitive Regel in P ist und S auf keiner rechten Seite einer Regel aus P vorkommt +- Typ 2: eine Regel $(l\rightarrow r)$ heißt kontext-frei wenn $l\in V$ und $r\in (V\cup \sum)^*$ gilt. Eine Grammatik ist vom Typ 2, falls sie nur kontext-freie Regeln enthält +- Typ 3: Eine Regl ist rechtslinear, wenn $l\in V$ und $r\in \sum V\cup {\epsilon}$ gilt. Eine Grammatik ist vom Typ 3 wenn sie nur rechtslineare Regeln enthält + +> Definition: Eine Sprache heißt vom Typ i (4i\in {0,1,2,3}$) falls es eine Typ-i-Grammatik gibt mit $L(G)=L$. Wir bezeichnen mit $L$, die Klasse der Sprache vom Typ i. + +Eine Sprache vom Typ i nennt man auch rekursiv aufzählbar (i=0, RE), kontext-sensitiv (i=1, CS), kontext-frei (i=2, CF) oder rechtslinear (i=3, REG). + +Bemerkung: +- jede Typ-3/2/1-Grammatik ist vom Typ 0 +- jede Typ-3-Grammatik ist vom Typ 2 +- Regeln der Form $A\rightarrow \epsilon$ können in Typ 2 und 3 aber nicht in Typ 1 vorkommen + +> Satz: Es gibt einen Algorithmus, der als Eingabe eine Typ-1-Grammatik G und ein Wort w bekommst und nach endlicher Zeit entscheidet ob $w\in L(G)$ gilt. + From 84cf5cb8c9f8686444756d3d333f0c80e7332881 Mon Sep 17 00:00:00 2001 From: NorthScorp UG Date: Wed, 14 Oct 2020 08:31:20 +0200 Subject: [PATCH 2/5] =?UTF-8?q?verst=C3=A4ndlichere=20Beschreibung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 47ecd7f..734d7bf 100644 --- a/README.md +++ b/README.md @@ -20,21 +20,21 @@ bisher: Keine Garantie auf Vollständigkeit/Korrektheit! Hilf uns Fehler zu korrigieren und noch weitere Fächer abzudecken. ## Verwendung -Alle Dokumente werden in Markdown (bevorzugt) oder LaTex geschrieben. Bilder etc erhalten einen eigenen Ordner "Assets". Bei Fragen zu Markdown könnt ihr Google fragen, Cheatsheets lesen (da steht meistens alles drauf) oder im Notfall den Admin fragen. +Alle Dokumente werden in Markdown (bevorzugt) oder LaTex geschrieben. Bilder, Grafiken, Musik etc ist in einem eigenen Ordner "Assets". Bei Fragen zu Markdown könnt ihr Google befragen, Cheatsheets lesen (da steht meistens alles drauf) oder im Notfall den Admin fragen. Dieses Repo ist zum Selbststudium und erlernen neuen Wissens gedacht. Kein Inhalt oder Teile dieses Repositories darf kommerziell verwendet werden. Es steht frei zu Teilen, Klonen und Mitzuarbeiten. Wir freuen uns über jeden der mitmacht. ## Mitmachen -- Erstelle ein 'issue'. Gehe davor die offene 'issues' durch. (Oder überlege dir welches Fach noch fehlt) -- Klone das repository oder erstelle einen Fork: ```git clone https://github.com/wieerwill/Informatik.git``` -- Erstelle deinen eigenen feature branch: ```git checkout -b my-new-feature``` -- Stelle deine Änderungen bereit: ```git commit -m "Add some feature"``` (in "" kommt dein Kommentar) -- Lade auf deinen Branch hoch: ```git push origin your-new-feature``` -- Erstelle ein 'pull request' damit deine Änderungen in diesem Repository übernommen werden. +Eine kleine Beschreibung für Leute die noch nie auf Github zusammengearbeitet haben. Vorraussetzung für diese Aktionen ist, ein Github-Konto zu besitzen. +- Erstelle ein 'issue'. Gehe davor die offene 'issues' durch (oder überlege dir welches Fach/Seminar noch fehlt) +- Klone das Repository oder erstelle einen Fork. Über die Kommandozeile: ```git clone https://github.com/wieerwill/Informatik.git``` +- Erstelle deinen eigenen Feature Branch, damit deine Version nicht mit anderen Kollidiert: ```git checkout -b my-new-feature``` (in "" kannst du frei wählen wie du deinen Branch nennst) +- Nachdem du Änderungen vorgenommen hast, stelle deine Änderungen bereit: ```git add * && git commit -m "dein Kommentar"``` (in "" kommt dein Kommentar was sich geändert hat bzw woran du gearbeitet hast. Nicht der Dateiname!) +- Lade auf deinen Branch hoch: ```git push origin my-new-feature``` +- Erstelle ein 'pull request' damit deine Änderungen in diesem Repository übernommen werden. Dies kannst du über dein Github Dashboard machen. ## Bild- und Textrechte -Der Inhalt aller Dokumente hier ist die Mitschrift aus besuchten Vorlesungen. Es werden keine Bücher kopiert oder anderweitig Copyright verletzt. Die Verletzung des Copyright oder anderer Rechte Dritte wird mit einem Ausschluss aus dem Repository gehandelt. Sollte Ihnen ein Verstoß auffallen geben Sie uns bitte umgehend bescheid, wir werden jedem Fall nachgehen. -Bilder werden zum Großteil von uns selbst erstellt oder unter ausführlicher Quellangabe verwendet. +Der Inhalt aller Dokumente hier ist die Mitschrift aus besuchten Vorlesungen. Bilder werden von uns selbst erstellt oder unter ausführlicher Quellangabe verwendet. Es werden keine Bücher kopiert oder anderweitig Copyright verletzt. Die Verletzung des Copyright oder anderer Rechte Dritte wird mit einem Ausschluss aus dem Repository gehandelt. Sollte Ihnen ein Verstoß auffallen geben Sie uns bitte umgehend bescheid, wir werden jedem Fall nachgehen. ## Lizenz Dieses Repository und sein Inhalt sind unter der GNU GENERAL PUBLIC LICENSE Version 3 veröffentlicht. Was das bedeutet könnt ihr [hier](LICENSE) nachlesen. From 732f758ab381df89b04af95e846a5cfa43903575 Mon Sep 17 00:00:00 2001 From: NorthScorp UG Date: Wed, 14 Oct 2020 12:30:35 +0200 Subject: [PATCH 3/5] neue Vorlesung Softwaretechnik --- Softwaretechnik 1.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 Softwaretechnik 1.md diff --git a/Softwaretechnik 1.md b/Softwaretechnik 1.md new file mode 100644 index 0000000..308a8f8 --- /dev/null +++ b/Softwaretechnik 1.md @@ -0,0 +1,6 @@ +--- +title: Softwaretechnik 1 +date: Wintersemester 20/21 +author: Robert Jeutter +--- + From 00fd367b80e50155808b621e57e84897a069bb73 Mon Sep 17 00:00:00 2001 From: NorthScorp UG Date: Fri, 16 Oct 2020 12:34:29 +0200 Subject: [PATCH 4/5] neue Vorlesung --- Rechnerarchitekturen 2.md | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Rechnerarchitekturen 2.md diff --git a/Rechnerarchitekturen 2.md b/Rechnerarchitekturen 2.md new file mode 100644 index 0000000..a3e7424 --- /dev/null +++ b/Rechnerarchitekturen 2.md @@ -0,0 +1,50 @@ +--- +title: Rechnerarchitekturen 2 +date: Wintersemester 20/21 +author: Robert Jeutter +--- + +# Einführung +> Rechnerarchitektur = Programmierschnittstelle + Interner Aufbau +> Einheit von Struktur und Funktion + +Abstraktionsebenen eines Rechnersystems +| Anwendungsprogramm | Java, C,... | +| Assemblerprogramm | Betriebssystem-Ebene | +| Maschinenprogramm | Betriebssystem-Ebene | +| Register Transfer Verhaltensebene | Reg[2]:=Reg[3] | +| Register Transfer Strukturebene | Addierer, Multiplexer, Register | +| Gatterebene | $f=a\vee bc$ | +| Transistorebene | | + +Grundarchitekturen: +- Harvard (Zugriff direkt durch Prozessor) +- Princton/von-Neumann (Zugriff über Systembus) + +- Speicher, Steuerwerk: Daten und Instruktionen speichern; beinhaltet Programmzähler um Ausführung zu steuern +- Rechenwerk: auch ALU (Arithmetic and Logic Unit) um Berechnung durchzuführen + - Daten aus Hauptspeicher in Register laden + - Berechnungsaufgaben durchführen + - Ergebnisse in Hauptspeicher ablegen + +Programmiermodelle +- CISC - Complex Instruction Set Computers +- RISC - Reduced Instruction Set Computers +- MIPS - Microprozessor without interlocked pipeline stages + +> Unter dem CPI (cycles per instruction) -Wert einer Menge von Maschinenbefehlen versteht man die mittlere Anszahl der Taktzyklen pro Maschinenbefehl + + +# Prozessorarchitektur + + +# Speicherarchitektur + + +# Microcontroller und Digitale Signalprozessoren + + +# Parallele Architekturen + + +# Leistungsbewertung From e8c0a3d2aa6c7155c3357410e44ce1383bb040bd Mon Sep 17 00:00:00 2001 From: NorthScorp UG Date: Sat, 17 Oct 2020 13:31:03 +0200 Subject: [PATCH 5/5] neue Vorlesung --- Datenbanksysteme.md | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Datenbanksysteme.md diff --git a/Datenbanksysteme.md b/Datenbanksysteme.md new file mode 100644 index 0000000..803bee4 --- /dev/null +++ b/Datenbanksysteme.md @@ -0,0 +1,77 @@ +--- +title: Datenbanksysteme +date: Wintersemester 20/21 +author: Robert Jeutter +--- + +# Was sind Datenbanken - Grundlegende Konzepte +## Überblick +- Daten = logisch gruppierte Informationseinheiten +- Bank = Sicherheit vor Verlust, Dienstleistung für mehrere Kunden, (langfristige) Aufbewahrung + +Ohne Datenbanken: +- jedes Anwendungssystem verwaltet seine eigenen Daten +- Daten sind (redundant) mehrfach gespeichert +- Probleme + - Verschwenden von Speicherplatz + - "vergessen" von Änderungen + - keine zentrale "genormte" Datenerhaltung +- größere Mengen von Daten nicht effizient verarbeitet +- mehrere Benutzer können nicht parallel auf den gleichen Daten arbeiten, ohne sich zu stören +- Anwendungsprogrammierer/Benutzer können Anwendungen nicht programmieren/benutzen ohne ... zu kennen (keine Datenunabhängigkeit) + - interne Dartstellung der Daten + - Speichermedien oder Rechner +- Datenschutz und Datensicherheit + +### Datenintegration durch Datenbanksystem +Anwendungen greifen über Datenbankmanagementsystem auf Datenbank zu. + +Datenbankmanagementsystem (DBMS): Software zur Verwaltung von Datenbanken + +Datenbank (DB): strukturierter, von DBMS verwalteter Datenbestand + +Datenbanksystem (DBS) = DBMS + DB + + + +## Architekturen +die neun Codd'schen Regeln +1. Integration: einheitliche, nichtredundante Datenverwaltung +2. Operationen: Speichern, Suchen, Ändern +3. Katalog: Zugriffe auf Datenbankbeschreibungen im Data Dictionary +4. Benutzersichten +5. Integritätssicherung: Korrektheit des Datenbankinhalts +6. Datenschutz: Ausschluss unauthorisierter Zugriffe +7. Transaktionen: mehrere DB-Operationen als Funktionseinheit +8. Synchronisation: parallele Transaktionen koordinieren +9. Datensicherung: Wiederherstellung von Daten nach Systemfehlern + +## Einsatzgebiete + +## Historisches + +# Relationale Datenbanken - Daten als Tabellen + + +# Datenbankentwurf im ER-Modell + + +# Relationaler DB-Entwurf + + +# Relationale Entwurfstheorie + + +# die Datenbanksprache SQL + + +# Grundlagen von Anfragen: Algebra & Kalkül + + +# Transaktionen, Integrität und Trigger + + +# Sichten und Zugriffskontrolle + + +# NoSQL Datenbanken \ No newline at end of file