Programmiertrick

Ein Programmiertrick ist eine Vorgehensweise bei der Programmierung, bei der durch nicht vorgesehenes Ausnutzen von Eigenheiten der Programmiersprache bzw. der Soft- und Hardware-Umgebung Effekte erzielt werden, die bei lehrbuchmäßiger Programmierung größeren Aufwand erfordern würden oder gar nicht möglich wären. Die Grenze zwischen "konventioneller" Programmierung und Programmiertrick ist fließend. Die allgemeine Bezeichnung für derartige Vorgehensweisen heißt Hack.

Eingesetzt werden Programmiertricks zu vielfältigen Zwecken:

  • Schnellerer Programmablauf (Performance)
  • Geringerer Speicherverbrauch
  • Umgehung von Soft- und Hardware-Fehlern (Bugs)
  • Umgehung von Beschränkungen der Soft- und Hardware-Umgebung
  • Verschleierung von Programmfunktionen (z. B. zur Realisierung eines Kopierschutzes)
  • Kompakterer Quellcode (Einsparung von Tipparbeit)

Besonders verbreitet ist die Nutzung von Programmiertricks in der Demoszene, insbesondere wenn es um das Ausreizen der Fähigkeiten älterer Computersysteme (C64, Amiga) oder mobiler Endgeräte (z. B. PDA) geht. Aufgrund der vielen Nachteile, u. a. schlecht verständlicher Code, eingeschränkte Portabilität und die Gefahr von Kompatibilitätsproblemen, sollte die Nutzung von Tricks in "normalen" Programmen dagegen möglichst vermieden werden.

Beispiele

Der XOR-Trick
Der x86-Assemblersprachenbefehl "XOR EAX, EAX" führt vordergründig eine XOR-Operation des EAX-Registers (auch andere Register sind möglich) auf sich selbst aus, der Inhalt des Registers wird dabei auf 0 (Null) gesetzt. Damit ist dieser Befehl äquivalent zu "MOV EAX, 0", spart aber 4 Bytes an Speicherplatz.
Undokumentierte Befehle
Ältere Prozessorarchitekturen, z. B. die 6502-Familie, konnten Befehle ausführen, die in der Spezifikation der CPU nicht vorkamen. Durch Ausnützung dieser Befehle konnten häufig Speicherplatz und Taktzyklen eingespart werden, dafür bestand aber die Gefahr, dass der Code auf anderen Versionen des gleichen Prozessors nicht mehr funktioniert. Umgangssprachlich wird von „illegalen Opcodes“ gesprochen.
Selbstmodifizierender Maschinencode
Dieser Trick wird bei modernen Prozessoren nicht zur Performance-Steigerung benutzt (tatsächlich führt er sogar zu einer massiven Verlangsamung), ist aber für Verschleierungsmechanismen geeignet.
Hacker-Folklore
In einer bekannten im Usenet veröffentlichten Geschichte (The Story of Mel) über den archetypischen „Echten Programmierer“ Mel Kaye nutzt dieser u. a. einen Überlauf zur Steuerung einer Schleife.

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.