Die mir gebräuchliche Benutzung von ASCII-Sonderzeichen wird heute fortgesetzt.
Wenn ich etwas vergessen habe, dürft ihr gerne in den Kommentaren ergänzen.
: Doppelpunkt
In manchen Programmiersprachen wird der Doppelpunkt zu unterschiedliche syntaktischen Zwecken genutzt.
; Strichpunkt, Semicolon
Viele Programmiersprachen nutzen den Strichpunkt, um einzelne Befehle voneinander zu trennen.
< Kleiner, > Größer
Kleiner- und Größerzeichen werden verwendet, um Zahlenwerte miteinander zu vergleichen. In der Physik nutzt man sie auch für die Bra-Ket-Notation, in HTML und XML für Tags.
= Ist gleich
Das Gleichheitszeichen vergleicht Zahlenwerte. Manche Programmiersprachen nutzen es (auch) als Zuweisungsoperator.
? Fragezeichen
Das Fragezeichen ist Wildcard für ein einzelnes Zeichen. In Javascript etwa lassen sich damit einfache Abfragen formulieren.
@ Klammeraffe, At-Zeichen
Das At-Zeichen trennt bei Mail-Adressen den local Part vom Rechnernamen bzw. Domain. Es wird bisweilen auch zur Variablenadressierung genutzt. Bei Social Media spricht man damit gezielt einen bestimmten Nutzer an.
[] Eckige Klammern
Eckige Klammern werden beim Programmieren hauptsächlich für Arrays genutzt. In der Physik verwendet man sie für Kommutatoren, und in der Mathematik z.B. für die Gauss’sche Klammerfunktion.
\ Backslash, Rückschräger
Der Backslash dient als Pathdelimiter, bei manchen Programmiersprachen auch zur Modulo-Berechnung. Bei LaTeX wird er für die Syntax gebraucht.
^ Hochhax, Circumflex
Mit dem Hochzeichen lassen sich Potenzen schreiben, oder auch hochgestellte Indizes. Bei manchen Programmiersprachen wird es bei Pointeroperationen benutzt.
_ Underscore
Der Underscore kann in Identifiern benutzt werden, und dient dort oftmals zur Abtrennung einzelner Worte, bzw. ersetzt Blanks. Bei LaTeX leitet er Subindizes ein.
{} Geschweifte Klammern
In vielen Programmiersprachen dienen geschweifte Klammern als Markierungen für Anfang und Ende eines Blocks, in anderen umschließen sie einen Kommentar. In der Mathematik benutzt man sie um die Aufzählung einzelner Elemente einer Menge einzuschließen. In der Physik sind sie als Antikommutator verbreitet.
| Pipe
Den senkrechten Strich setzt man zum Pipen ein, oder um zwei Elemente zu verodern, manchmal auch als Separator.
~ Tilde
Die Tilde dient meist als Negation.
In c ist das Gleichheitszeichen eine beliebig hinterhältige Fehlerquelle, weil es nämlich nicht der Vergleichsoperator ist sondern eine Zuweisung. „if (A = B)“ liefert immer TRUE zurück und der Fehler ist sooo schwer zu finden. Habe ich schon oft suchen müssen… Genau wie „if (memcpy(a, b, sizeof(b))“ schwer zu finden ist…
LikeLike
Das ist doch in fast allen Programmiersprachen so…
Zum Glück warnen vernünftige IDEs heute 😉
LikeLike
sorry, ich bin Hostie, da gibt es ISPF und sonst gar nichts…
Ein paar Kollegen entwickeln dezentral und schieben dann die Sourcen auf den Host, ist aber nicht sehr gebräuchlich. Jetzt könnte ich mich geoutet haben, c und Host sind nicht so üblich.
LikeLike
OK – ich hab C von der anderen Seite aus angeschaut. Sprich aus Software-Entwickler-Seite.
LikeLike
Ich entwickle Software…. Auf dem Host….
LikeLike
Ah .. ja .. klar .. so war das auch nicht gemeint, dass Du keine Software entwickeln würdes. War blöd von mir ausgedrückt. Ich meinte Applikationsentwicklung mit GUIs Einzelplatzanwendungen mit „andere Seite“.
Also C aus Sicht von objektorientierten Sprachen wie C++ / C# / Java im Gegensatz zur Sicht aus Assembler. Und da dann nur bezogen auf das ==
LikeGefällt 1 Person
Oh, ja, an das doppelte Gleichheitszeichen als Vergleichsoperator muss man sich erst gewöhnen, und selbst dann kann man es mal übersehen.
Wenn man auf der LHS einen Funktionsaufruf o.ä. stehen hat, bringt der Compiler allerdings eine Fehlermeldung, dass er nichts zuweisen kann.
C ist wenigstens typsicher. Bei Javascript oder PHP kann es außerdem passieren, dass man Äpfel mit Birnen vergleicht, weshalb man dort besser === nutzt.
LikeLike
UPS: da fehlt ne Klammer „if (memcpy(a, b, sizeof(b)))“
LikeGefällt 1 Person
Wenn ich so etwas lese, bereue ich es immer, dass ich nichts davon kann. Vielleicht sollte ich mich doch mal an Programmieren für Dummies wagen.
LikeLike
Dafür kann auch ich kein rollendes R und Vokabellernen ist das Grauen schlechthin.
LikeLike
Danke, jetzt fühle ich mich noch schlechter 😜.
LikeLike
Das geht mir auch so. Aber weil ich mir jetzt in den Kopf gesetzt hab, norwegisch zu lernen, übe ich täglich das rollende R. Die Katze flüchtet bereits, wenn ich anfange damit … 😉
LikeLike
Nur zu!
Programmieren ist kein Hexenwerk (wobei Kenntnisse des hexadezimalen Zahlensystems nicht schaden können).
LikeGefällt 2 Personen
Ich erinnere den Spruch eines Informatik-Bekannten.
„Es reicht die Kenntnis der verschiedenen Variablentypen, Pre-checked und Post-checked Loops und die jewelige Syntax der Programmietsprache. Kannst du eine Hochsprache, ist das Lernen einer weiteren nut eine Übungssache“
So oder so ähnlich ist es.
Schieß dich auf eine Sprache ein und werde warm mit der Materie.Alles weitere kommt dann mit der Übung.
LikeGefällt 2 Personen
Wenn ich schon mal unter Experten bin: Was ist ein sinnvoller Einstieg? Bestimmtes Buch, Programm etc.?
LikeLike
Also ich würde nicht mit c einsteigen, die Kurse/Bücher bringen immer zu 80% Tüdelkram und nur am Ende erwähnen sie ganz kurz kniffelige Strukturen oder Pointerverarbeitung. Das ist aber im Beruf das A&O…
Privat würde ich wohl mit VBASIC oder Java starten…
LikeGefällt 1 Person
VB ist in Ordnung für Anfänger. Von Java würde ich abraten.
LikeLike
Puh .. kontroverses Thema. Dazu hat wohl jeder Programmierer eine andere Meinung.
Ich würde erst mal ganz bequem und ohne Kosten anfangen, ein wenig Javascript zu lernen.
Dazu braucht es keine IDE oder sonst etwas zu installieren. Ein Texteditor genügt, und ausgeführt wird es – völlig unabhängig vom Betriebssystem – im Browser.
Javascript ist von der Syntax dem verbreiteten C++ sehr ähnlich.
Als Einstieg für Anfänger ist vielleicht https://wiki.selfhtml.org/wiki/JavaScript/ nicht schlecht (zumindest hhabe ich Javascript über SelfHTML gelernt, die Seite war aber damals noch ganz anders aufgebaut).
LikeGefällt 2 Personen
Im Grunde ist es gleichgültig, womit man anfängt. Es gibt ein paar Dinge in jeder Sprache: Schleifen, Bedingungen, Funktionsaufrufe… Das muß man einmal checken und dann auf neue Sprachen anpassen. Außer Assembler natürlich, da scheint auf den ersten Blick alles anders zu sein (ist es aber nicht).
Vielleicht ist ein Kurs (vhs) sinnvoll, aber das ist natürlich total vom Dozenten abhängig.
LikeGefällt 2 Personen
Assembler ist die Kür und aus meiner Erfahrung eigentlich nur wichtig, wenn du sehr wenig Speicher hast oder Echtzeitsysteme abbilden musst.
LikeLike
Naja: es gibt Unternehmen, da ist Assembler der weit größte Anteil an Code-Menge. Es wurde „vergessen“ auf modernere Hochsprachen zu schwenken, oder es schien zu teuer. Nun rächt es sich, weil a) Hosties und b) Hosties mit Assembler-Kenntnissen rar (und teuer) werden… Nebenbei: seitdem ich beruflich auf dem Host unterwegs bin, steht er ständig zur Diskussion und solle alle paar Jahre abgelöst werden. Nur: die Ablöseprojekte verliefen bisher immer im Sande und es wird die nächste Generation z/OS eingeführt…
LikeLike
Oje, das klingt nicht gut, zumal Assembler immer seht nah an der Hardware ist.
Die Assembler Kenntnisse sind eines, aber oft fehlt es schon an Dokumentation des Codes.
Hast du schon mal versucht, dich in fremden ASS-Code einzulesen ? Zum Kotzen ist das.
Da kann man den Unternehmen nur viel Glück wünschen.
LikeLike
Habe ich, ist sozusagen Tagesgeschäft. Ein Grauen kann es wirklich sein, vor allem, wenn die Kommentare falsch sind… Cut and Paste beim Code, anpassen an die neue Notwendigkeit und die alten Kommentare so lassen.
LikeLike
Ja, vom Feinsten. Falsche Fährten legen ist immer wundervoll.
Gutes Gelingen und viel Geduld.
LikeGefällt 1 Person
Assembler ist halt konkurrenzlos, wenn es um Performance geht.
Da kommt keine Hochsprache mit ihrem ganzen Overhead mit.
LikeLike
Natürlich. Speed ist aber relativ. Wirklich wichtig, wird es in Echtzeitsystemen, wo zeitliche Reaktionen auf den Punkt kommen müssen.
LikeLike
Oder bei Blockoperationen, bei denen mit allen Daten auf einem großen Speicherblock dieselbe Aktion auszuführen ist.
Mit einer while- oder for-Schleife dauert das beträchtlich länger, als mit geschickter Assembler-Programmierung.
LikeGefällt 1 Person
Ja, kann sein, muss aber nicht.
Ich kenne Kollegen, die durch ungeschickte Strategie auch Assembler langsam kriegen. Wenn z. B. eine Schnittstelle mit relativ großer Datenmenge täglich in eine Tabelle insertet wird, ohne Deltabildung, ohne Abgleich immer wieder insert bzw. update, dann wird auch so eine Anwendung gebremst. Sinnvoll wäre ein Load/Replace, wenn man schon kein Delta bilden möchte…
LikeLike
Datenbank-Anwendungen haben wieder ihre eigene Philosophie, die nicht unbedingt mit Assembler harmoniert.
LikeGefällt 1 Person
Da würde ich aber stark widersprechen wollen. Solange du auf modernen Prozessoren unterwegs bist, nehme ich jede Wette an, daß ein Standard C-Compiler effizienteren Code für die gegebene Architektur produziert, als 99% aller Assemblerprogrammierer!
Siehe dazu auch die Vortragsfolien von fefe:
https://blog.fefe.de/?ts=aa84a00b
LikeLike
Naja, ich habe irgendwann mal Zeitmessungen gemacht. Da ging es allerdings um einen bestimmten Fall, in dem mit einem Speicherblock von einigen Megabyte irgendetwas bestimmtes gemacht werden sollte (weiß nicht mehr genau). Mit der Assembler-Routine ging es ruckzuck. Beim Vergleichscode gab es eine merkliche Verzögerung.
Aber der Unterschied ist sicherlich vom Einzelfall abhängig. In vielen Fällen lohnt sich der Einsatz von Assembler wohl nicht.
LikeLike
Assembler ist grausig. Brrrrrrrr.
LikeGefällt 1 Person
Ich würd mit C# starten 🙂
LikeLike
Am einfachsten finde ist es, was neues zu lernen, wenn man ein konkretes Projekt hat. Ich habe damals (lang ist es her – muss Mitte der 80er gewesen sein) unbedingt ein Strickmuster für einen Fraktalpulli generieren wollen und mir dazu notgedrungen, programmieren beigebracht. Das war bei mir damals Turbo Pascal.
Im Prinzip war die Sprache aber egal – der Einstieg war gemacht und das Eis gebrochen. Über viele verschiedene Programmiersprachen bin ich inzwischen hauptsächlich mit C#, HTML, ASP.NET und Javascript unterwegs. Habe aber auch in C, C++, Java, Lisp, Visual Basic und anderen entwickelt. Im Prinzip sind alle mehr oder weniger ähnlich, mit verschiedener Syntax und Semantik.
LikeGefällt 4 Personen
Benütz bloß nie die Kleiner-Größer-Dinger hier in WP, die haben mir heir schon übelst Dinge weggeschnitten!
LikeLike
Deshalb schreibt man die in Blogtexten und Kommentaren auch als < und >.
LikeLike
Ach soooooooo, Mensch, das hatte ich ja total vergessen! *HandvordieStirnklatsch*
Du Spaßkeks! 😀
LikeLike
Wieso Spaßkeks?
Die Kleiner- und Größerzeichen werden bei HTML für die Tags gebraucht.
Wenn du eines im Text darstellen willst, musst du das eben besonders kenntlich machen.
Nicht wieder vergessen, Molly!
LikeLike
Ich weiß, aber es nervt. Das HTML nach mir benannt wurde, weißt Du aber?
„Heißes Teil: Molly Logan“ 😉
LikeLike
Ach, Molly, wenn dich das schon nervt, dann halte lieber Abstand von Programmiersprachen und (Hyper Text) Markup Languages.
LikeGefällt 1 Person
Ja was soll ich denn machen, Anne, die Leute kommen doch zu mir!!!!!!
… nach Dir wurde ja ASCII benannt, aber das schreibe ich jetzt mal nicht aus, aus jugenschutztechnischen Gründen ^^
LikeLike
ASCII ist schon älter als ich.
LikeGefällt 1 Person
Die wollen nur, dass Du das glaubst!
LikeLike
Assembler – hui, lang ists her …
LikeLike
Hast du selbst assembliert, oder nur theoretisch mal gelernt?
LikeLike
Aber wie gesagt: ich rede nicht von PC, Unix oder Linux sondern vom IBM-Mainframe unter z/OS. Und da ist bei einigen Kunden auch Assembler nach wie vor aktuell.
LikeLike
Lustig, dass ein Gleichheitszeichen so eine Diskussion ausloest…
LikeLike
Ich hab jetzt nicht die ganzen Kommentare gelesen, hab aber noch was aus den Shells der nicht-Wintendo-Welt hinzuzufügen: Die Tilde steht als Abkürzung für das Home-Verzeichnis des Nutzers. Das größer-Zeichen > in einfacher oder doppelter Ausführung ist ebenfalls eine andere Form des Pipe, man fügt damit die Ausgabe eines Befehls in eine Datei ein (1x >) oder ans Ende der Datei, ohne den Rest der Daten darin zu überschreiben (2x >>). Letzteres ohne Gewähr, kann auch umgekehrt sein, so ein entweder/oder kann ich mir nicht merken, wenn ich es nur 1-2 mal im Jahr benutzen muss…
LikeLike
Danke.
Die Kommentare drehen sich hauptsächlich um den Einstieg beim Programmieren Lernen und um Assembler.
Das mit der Tilde hatte ich irgendwann mal gewusst, aber längst wieder vergessen, da ich es normalerweise nicht brauche.
Ja, stimmt. Mit Größer und Kleiner lassen sich Ein- und Ausgaben in einer Shell in oder aus einer Datei umleiten.
LikeLike
Pingback: Tweets trotz Grabesruhe //1517 | breakpoint