Ich frage mich gerade, wie sich eine Pascal-Unit zum Begriff "Bibliothek" verhält. Traditionell war es AFAIK doch so, dass in den meisten Programmiersprachen nur strukturiert programmiert werden konnte, indem man andere Quelltextdateien, eben Bibliotheken, mit einer Include-Anweisung eingebunden hat. Und man musste sämtliche benötigte Bibliotheken in den Quelltext des Hauptprogramms inkludieren, auch wenn auf manche dieser Bibiotheken nur von Routinen einer anderen Bibliothek zugegriffen wurde. Die Pascal- und Modula2-Units boten bei ihrer Einführung die Neuerung, dass sie 1. vorkompiliert waren, so dass das Kompilieren von programmen schneller ging. Der vorkompilierte Code wurde einfach flott aus der Unit- in die Programmdatei kopiert. Zweitens wurden sie automatisch mitkompiliert, wenn auf sie zugegriffen wurde und sie bisher nur im Quelltext vorlagen. Drittens mussten nicht mehr sämtliche benötige Unter- und Unterunterunits im Hauptprogramm angegeben wurden, da die Units selber andere Units benutzen konnten, und der Compiler diese Abhängigkeiten automatisch durchgeprüft hat. Notfalls hat er einfach ganze Abhängigkeitszweige neukompiliert, wenn zu einem Unit-Quelltext keine zugehörige compilierte TPU-Datei auffindbar war... Insofern ist meiner Meinung eine Unit eine erweiterte Form einer statischen Bibliothek. Wobei inzwischen auch moderne C-Compiler mit solchen Techniken arbeiten. Eigentlich gibt es somit in C auch Units. Teilweise ist es nur schwer zu erkennen, ob Unit oder Bibliothek vorliegt. Traditionell heißen die Dinger in C eben Bibliothek und in Pascal Unit. Wobei durch die Verbreitung von C und die Art, wie Units in Delphi benutzt werden, inzwischen auch viele Pascal/Delphi-Programmierer von Bibliotheken reden und kein C-Programmierer stdio.h als Unit bezeichnet, auch wenn alles bereits vorgekaut(kompiliert) ist. In den meisten Pascal-Compilern lassen sich natürlich auf die klassiche Methode auch andere Quelltexte mit Prozedursammlungen inkludieren, z.B. mit {$I Dateiname} unter Borland und FPC. Wobei es sich dabei um Compilerdirektiven handelt, die theoretisch je nach Compiler verschieden sein können. Wobei man auch sagen muss, dass auch USES für die Einbindung von Units strenggenommen ursprünglich von Borland kommt... (nicht signierter Beitrag von 192.0.2.255 00:42, 7. Mär. 2010 (CET) )