Programmierverständnis?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Gehen wir davon aus, dass der Physiker nicht programmieren kann. Dann würde der Physiker zunächst die Algorithmen entwickeln. Also wie man die Dinge berechnet, vielleicht sogar ziemlich konkret, wie sie ein Computer berechnen könnte (numerische Lösungsverfahren für Gleichungen...) Die Beschreibung ist abstrakt und nicht an eine Programmiersprache gebunden.

Der Programmierer setzt diese Beschreibung dann in einen konkreten Quelltext für ein- oder mehrere Programmiersprachen um.

Der Compiler transformiert diesen Quelltext in Maschinencode.

jankadef 
Fragesteller
 06.06.2020, 09:07

Das war auch mein erster Gedanke.

0

Das Wichtigste wurde schon gesagt.

Nicht einverstanden bin ich noch damit, wer den Algorithmus entwickelt. Dafür ist ein Softwareentwickler zuständig. Oft in Personalunion mit dem Programmierer ("Codeäffchen"), weil Algorithmen oft anfangs fehlerhaft sind und korrigiert werden müssen. Aber auch der Software-Architekt ist oft an der Erstellung eines Algorithmus beteiligt (Personalunion mit Entwickler).

Der Physiker liefert "lediglich" den fachlichen Hintergrund, die mathematischen Beziehungen zwischen den Elementen und Geschehnissen. Diese Beziehungen sind Gleichungen (oder Ungleichungen), die erst noch durch ein Verfahren, also den Algorithmus, für den Computer berechenbar gemacht werden. Hier muss der Physiker wieder prüfen, ob dies richtig umgesetzt worden ist, aber es ist Aufgabe des Entwicklers (oder besser eines anderen Entwicklers, der nicht betriebsblind ist), den Algorithmus wieder in eine Formel umzusetzen, und die Aufgabe des Softwarearchitekten, diese Gleichung wieder an den Physiker zu bringen.

Auch hier kann der Physiker Entwickler genug sein, um den Algorithmus selbständig in Gleichungen zurückzuübersetzen, aber das ist nicht in der Definition eines Physikers enthalten.

-----

Außer Geld- und Zeitnangel und manchmal sogar (scnr) Qualitätsanforderungen spricht nichts dagegen, dass ein Physiker eine Physics-Engine direkt in Maschinensprache umsetzt. Aber dann spielt der Physiker halt mehrere Rollen.

Woher ich das weiß:Studium / Ausbildung

Programmierer erstellen zuerst den Quelltext, also den äußeren formalen Rahmen. Der Physiker die Algorithmen, den konkreten Inhalt. Der Compiler übersetzt am Ende.

jankadef 
Fragesteller
 06.06.2020, 08:55

Ist diese Reihenfolge richtig oder die von ShinyArmageddon?

0
valentin1842  06.06.2020, 08:58
@jankadef

Fest steht, dass immer am Ende kompiliert wird. Über die ersten beiden kann man streiten. Man könnte auch argumentieren, dass sich der Physiker im Voraus (auf einem Blatt Papier) Gedanken um die Algorithmen macht und dann erst der Quellcode entsteht.

1

Physiker - Algorithmen

Programmierer - Quelltext/(Algorithmen)

Compiler - Maschinensprache

ShinyArmageddon  06.06.2020, 08:51

Also: Compiler übersetzen für uns leicht verständliche Quelltexte aus den üblichen Programmiersprachen in funktionalen Code für den Computer (hättest du auch googeln können). Dass der Programmierer den Quelltext liefert, ist wohl selbstverständlich.

Die Algorithmen werden idealerweise vom Physiker geliefert (er muss ja wissen, wie die Physik funktioniert und verrechnet werden muss) sowie teilweise vom Programmierer (kann ja sein, dass nicht alle/der gesamte Algorithmus nur aus den Formeln des Physikers besteht).

Den Quelltext kann man erst programmieren, nachdem man weiß was man programmieren möchte (also die Algorithmen kennt). Der Compiler braucht sowieso den Quelltext.

3
jankadef 
Fragesteller
 06.06.2020, 08:56

Stimmst du der Antwort von valentin1842, in Bezug auf die Reihenfolge, zu?

0
ShinyArmageddon  06.06.2020, 09:00
@jankadef

Ist egal - der Quelltext kann erst vollendet werden, wenn alle Algorithmen bekannt sind. Vor der Vollendung, kann beides aber auch teil-simultan geschehen. Ist wie ein mündliches Diktat: Erst wird gesprochen, dann geschrieben; ABER man schreibt bereits den Protokollkopf oder Diktatsätze bevor das mündliche Diktat komplett vorbei ist.

3