Programmiersprachen im Internet und in Netzwerken

Aus Flinkwiki
Wechseln zu: Navigation, Suche
Seitenübersicht
Zur Seite "Netzwerke und Internettechnologien"
Zur Seite "HTML"

Grundlagen IT-Kommunikation

Definition

  • Informatik ist Kommunikation. Das gilt sowohl für „kleine“ als auch für „große“ Bereiche. Jede Tastatureingabe ist ja bereits eine Interaktion, also Kommunikation. Bezüglich Netzwerken ergeben sich natürlich noch viel weitreichendere Aspekte.
  • Kommunikation erfolgt durch Sender und Empfänger
  • Kommunikation benötigt Regeln, damit sich Sender und Empfänger verstehen können
  • Diese Regeln bestehen aus Syntax und Semantik, in der IT ausdrücklich nicht aus Pragmatik
  • Kommunikation sollte möglichst störungsfrei erfolgen, und benötigt ein Übertragungsmedium

Formale Sprachen und formale Systeme

Symbole > erkennen (identifizieren) > Relevanz erkennen > Bedeutung verstehen > darauf reagieren können.

Ein formales System besteht aus:

  • V der Menge von Symbolen / Zeichen, also das „Alphabet“
  • F ⊆ V* , F als Teilmenge der Wörter über V, Formeln genannt
  • A ⊆ F , Teilmenge von F, Axiome genannt (Grundregeln)
  • P , Menge der Ableitungsregeln über den Wörtern, quasi Funktionen.

Aspekte von Zeichensystemen

Grundlegend für Computer, für IT sind Informationen und Kommunikation. Der Austausch von Informationen mittels Kommunikation erfolgt bei Computern über Zeichensystemen. Damit können Nachrichten zwischen einem Sender und einem Empfänger ausgetauscht werden. Dabei existieren 3 Merkmale:

  • Syntax: Die Syntax einer Sprache (eines Zeichensystems) beschreibt die Regeln, nach denen die Sprachkonstrukte (Zeichen des Zeichensystems) gebildet werden. // Regeln und Elemente wie Buchstaben (Alphabet), Wörter.
  • Semantik: Die Semantik einer Sprache (eines Zeichensystems) beschreibt die Bedeutung der Sprachkonstrukte (Zeichen des Zeichensystems).
  • Pragmatik: Die Pragmatik einer Sprache (eines Zeichensystems) beschäftigt sich mit der Verwendung und Bedeutung von Sprachkonstrukten in konkreten Situationen. Programmiersprachen dürfen keine Pragmatik enthalten, denn das System muss einheitlich und unmissverständlich sein mit eindeutigen Befehlen.

Programmiersprachen im Internet und in Netzwerken

Allgemeines

  • Computer verstehen Maschinensprache
  • Programmiersprachen ermöglichen, dass wir mit Computern kommunizieren können
  • Damit Computer Programmiersprachen verstehen können, braucht man ein Übersetzungsprogramm – den Compiler. Das Betriebssystem hilft dabei ebenfalls.
  • Programmiersprachen werde zu einem bestimmten Zweck entwickelt – sollen also bestimmte Eigenschaften besitzen.
  • Deshalb eignen sich nicht alle Programmiersprachen für Netzwerkanwendungen

Paradigmen der Programmierung

  • Verschiedene Arten von Programmiersprachen definieren die Sichtweise auf Aufgaben und die Herangehensweise.
  • Dabei erfüllen diese spezielle Aufgabenbereiche besonders gut, offenbaren aber auch Schwächen in anderen Bereichen.

Prozedurale Programmierung

Informationen werden hier vor allem durch Grunddaten - also ganze Zahlen, boolesche Werte, Zeichen, Zeichenreihen und so weiter modelliert. Diese können dann in Variablen oder Konstanten gespeichert werden, oder auch zu komplexen Datenstrukturen, wie Arrays oder Records zusammengefasst werden.

Prozedur: Eine Prozedur erledigt (Teil)- Aufgaben, die zur Bearbeitung einer Anweisung notwendig sind, unter Verwendung von Parametern. Eine Prozedur ist ein Verfahren, mit dessen Hilfe eine Aufgabe erfüllt werden kann.

while ( not abbruchbedingung ) {  ……   ; proz1(..); …. }

Prozedurale Programmierung modelliert die Information durch Zustände über Variablen und Daten, und modelliert die Verarbeitung als schrittweise Abfolge von Zustandsübergängen.

Bewertung:

  • Nachteile der strikten Abfolge von Prozeduren erkennt man bei Parallelität. Dafür werden dann weiterführende programmiersprachliche Konstrukte notwendig, die das Modell nicht von sich aus bereithält.
  • Das bedeutet aber auch, dass eine derartige strikte Abfolge Probleme bei der Modellierung von Parallelität mit sich bringt; das Modell selbst bringt diese Methodik nicht mit. Es ist deshalb aber noch lange nicht ausgeschlossen. Auch mit prozeduralen Sprachen kann Parallelität erzeugt werden; diese muss jedoch aufwendig programmiert, also vom Programmierer erzeugt werden.
  • Ein weiterer Nachteil ist die strenge Typisierung: Ein erweiterter oder modifizierter Typ ist nicht mehr kompatibel zu dem bestehenden; eine Prozedur kann also den neuen Typ nicht für die Verarbeitung akzeptieren.

Wikipedia Prozedurale Programmierung

Deklarative Programmierung

  • Deklarative Programmiersprachen sind sehr nah an mathematischen Modellen
  • Grundlage sind keine Prozeduren, sondern die Definition von Daten und Regeln
  • Deklarative Programmiersprachen eignen sich für Abfragen, beispielsweise bzgl. Datenbanken

Bewertung:

Für Abfragen auf gemeinsamer Datenbasis eignen sich diese Sprachen besonders gut. Hierarchische Strukturen von Programmen lassen sich ebenfalls einfach modellieren. Durch die mathematische Nähe können funktionelle Aufgaben besonders gut erfüllt werden. Nachteile sind vor allem die fehlende Möglichkeit der Realwelt-Abbildung und der Kommunikation innerhalb von Strukturen.

Objektorientierte Programmierung

  • Grundlegend für diese Programmierung sind Gegebenheiten der realen Welt: Diese soll so präzise wie möglich modelliert werden. - Objektorientierte Programmiersprachen orientieren sich an der realen Welt.
  • Deshalb werden „Objekte“ identifiziert, die mittels „Nachrichten“ miteinander kommunizieren.
  • Objekte besitzen Funktionalitäten, „Methoden“ genannt, die durch andere Objekte ausgelöst werden können. Dazu gibt es wiederum Parameter.
  • Strukturierung und Typisierung ist ein weiterer wichtiger Aspekt der objektorientierten Programmierung.

Bewertung:

  • Wiederverwendung von Programmen: Man kann bereits bestehende Programmlösungen in neue Programme einfügen, Baukästen können entstehen, höhere Effizienz.
  • Verteilte Programmierung – Parallelität
  • Voneinander unabhängige Objekte können miteinander kommunizieren – objektorientierte Sprachen sind also auf Kommunikation ausgerichtet. Diese Objekte bestehen unabhängig voneinander, und können sich gegenseitig nutzen; Parallelität ist also ebenfalls ein wichtiger Bestandteil.
  • Das Typisierungs- und Vererbungskonzept ermöglicht Flexibilität.

Beispiel: Eine Klassendeklaration:

class Person {
      string name;
      int geburtsdatum;
      void drucken() { System.out.println („Name:“ + this.name); }
      boolean hat_geburtstag (int datum) { return (this.geburtsdatum%10000) == (datum%10000);    }
      Person (String n, int gd) { name= n; geburtsdatum= gd; }
} 

Beispiel des dynamischen Bindens:

class Saeugetier {
    void steckbrief() {
      System.out.println("Ich bin ein Säugetier.");
    }
  }

  class Gepard extends Saeugetier {
    void steckbrief() {
      System.out.println("Ich bin ein Gepard.");
    }
  }

  class Elefant extends Saeugetier {
    void steckbrief() {
      System.out.println("Ich bin ein Elefant.");
    }
  }
  
  public class DynamischeBindungBeispiel {
    public static void main(String[] args) {
      java.util.List<Saeugetier> tiere = new      
           java.util.ArrayList<Saeugetier>();
                tiere.add(new Saeugetier());
                tiere.add(new Gepard());
                tiere.add(new Elefant());
 
      for (Saeugetier tier : tiere) {
        tier.steckbrief();
      }
    }
  }

Java:

  • Java bezeichnet man als „plattformunabhängig“:Java besitzt eine Java Runtime Umgebung – man muss diese nur bei sich installiert haben, und schon kann Java ausgeführt werden. Egal welches Betriebssystem man verwendet – Java funktioniert.
  • Java ist besonders gut als Internetsprache geeignet.
  • Es ist komplett kostenlos.Die Firma Sun stellt Java und die entsprechenden Programme wie die Runtime-Umgebung kostenlos zur Verfügung. Somit kann jeder dieses Programmiersystem nutzen.

HTML, Java, PHP, JavaScript

  • Für das Internet sind vor allem die Programmiersprachen Java, HTML, PHP sowie JavaScript wichtig .
  • Alle diese Sprachen funktionieren „plattformunabhängig“; es ist also nicht relevant, welches System – vor allem welches Betriebssystem – ein Rechner nutzt. Dazu gibt es Laufzeitumgebungen bzw. den Browser, die auf dem Rechner installiert sein müssen.
  • HTML wird von Browsern verstanden und dient dazu, Web-Inhalte wie Texte, Bilder, Videos, usw. anzuzeigen.
  • Mit JavaScript können dynamische Bewegungen ausgeführt werden.
  • PHP dient dazu, dynamisch weitere Inhalte einzufügen, vor allem durch Zugriff auf Datenbanken.

Zur Seite HTML

Programmiersprachen-Ranking


| | | |