割韭菜什么意思| 精油是干什么用的| 朱砂有什么功效| 古稀是什么意思| 大象又什么又什么| 脾虚吃什么水果| 深海鱼油什么牌子好| 动物奶油是什么做的| 3.4是什么星座| 什么看果园越看越少| 月经期适合吃什么水果| 唐氏筛查是检查什么| 验尿白细胞高是什么原因| 武则天是什么朝代| 牛仔外套搭配什么裤子好看| 六块钱麻辣烫什么意思| 营养师是干什么的| 痔疮手术后可以吃什么水果| 考拉是什么意思| 物质是由什么组成的| 梨涡是什么意思| 卜卦是什么意思| 土加一笔是什么字| 原籍是什么意思| 幼稚细胞是什么意思| md是什么牌子| 曲水流觞是什么意思| 大枣吃多了有什么危害| 早上七八点是什么时辰| 1976年是什么命| 秋天有什么水果| 喝酒吃头孢有什么反应| 扳机是什么意思| 什么是眼底病| 白醋洗脸有什么好处| 眼睛干涩疲劳用什么眼药水| cartoon什么意思| 蛰居是什么意思| 520和521的区别是什么| 原字五行属什么| 似曾相识是什么意思| 发烧吃什么食物比较好| 蝉的幼虫叫什么| 音召念什么| 拖拖拉拉什么意思| 薤白是什么东西| 啤酒花是什么东西| 什么水果补血效果最好| 脾大是什么意思| 核桃不能和什么一起吃| 姜黄是什么东西| 夕阳红是什么意思| 是指什么| 2020年是什么命| 超敏c反应蛋白高说明什么| 肠道易激惹综合症是什么症状| 月经颜色发黑是什么原因| 什么叫意象| 甲沟炎医院挂什么科| 电邮地址是什么| 双环征是什么意思| 祖宗是什么意思| 血糖高吃什么食物最好最佳| 市长什么级别| 举头三尺有神明是什么意思| 催乳素偏高有什么影响| 办居住证需要什么| pop店铺是什么意思| 苹果充电口叫什么| 红线女是什么意思| 亚麻籽油和胡麻油有什么区别| 大专什么专业就业前景好| 半夜吃东西有什么危害| 舌有裂纹是什么原因| 光明会到底是干什么的| 统招生是什么意思| 请节哀是什么意思| 薄荷叶晒干后能干什么| 睡觉流口水是什么毛病| 放屁多是什么病的征兆| 肚子疼看什么科| 嗓子发苦是什么原因| 小暑大暑是什么意思| 硬核是什么意思| 钟馗是什么人物| 萎缩性胃炎吃什么药效果好| 能的偏旁是什么| 灰指甲挂什么科| 闪购是什么意思| 偏光和非偏光有什么区别| 银花有焰万家春是什么生肖| 肚脐是什么部位| 开心的动物是什么生肖| 2002年出生属什么| 风调雨顺的下联是什么| 乳腺增生不能吃什么食物| 什么叫市级以上医院| 看得什么| 油漆味对人有什么危害| 吃什么药可以死| 什么是义齿| 卵巢早衰吃什么药最好| 薄谷开来为什么杀人| 眼睛突然红了是什么原因| 浅尝辄止什么意思| 无性恋什么意思| 恐龙灭绝的原因是什么| sei是什么意思| 乔迁是什么意思| 两肺散在小结节是什么意思| 洛什么意思| 扩心病是什么病| 衤字旁的字与什么有关| 藿香正气水有什么用| 7月去英国穿什么| 干贝是什么| 三聚净戒是指什么戒| 前胸贴后背是什么意思| 鸡胸肉炒什么好吃| 北极熊的毛是什么颜色的| 脚背痛什么原因| 哈密瓜是什么季节的水果| 固表是什么意思| 尿里带血是什么原因女性| 猴年马月什么意思| 上海曙光医院擅长什么| 耳朵痛用什么药| 现在创业做什么好| 敏感是什么意思| karen是什么意思| 0l是什么意思| 宫颈囊肿是什么症状| 缺陷的陷是什么意思| 蜜蜡什么样的成色最好| 三伏天喝什么汤最好| 嘴苦嘴臭什么原因| 抽烟为什么会上瘾| 路演是什么意思| 乳腺癌有什么症状| 勃起不够硬吃什么药| 桜什么意思| 鸭肉和什么一起炖好吃| 小鸭子吃什么食物| 挫是什么意思| 藏蓝色是什么颜色| 胃反流吃什么药好| 水垢是什么| 阑尾炎手术后可以吃什么| 失重感是什么感觉| 什么叫甲沟炎| 肾上腺素高会导致什么| 宝宝便秘吃什么好| 余字五行属什么| 1210是什么星座| 感冒喝什么药| 严肃的什么| 丹参粉有什么作用和功效| 嘴巴干是什么原因| 火字旁跟什么有关| 微信证件号是什么| 手上起小水泡是什么原因| 甲醛超标有什么危害| 儿童乘坐高铁需要什么证件| 为什么体检要空腹| 绝倒是什么意思| 皮肌炎是什么病| 什么是免疫治疗| 便秘是什么| 肝气虚吃什么中成药| 阖闾和夫差是什么关系| 得意忘形什么意思| 自言自语是什么原因导致| 怀孕一个月肚子有什么变化| 鹅吃什么草| 砚台是什么| 血压低压高是什么原因| 朋友是什么意思| 白带发绿是什么原因| 大学毕业是什么学历| min是什么单位| 勃起不硬吃什么药| 本子什么意思| 欢子真名叫什么| 发炎不能吃什么东西| 外阴痒用什么药| 舌头上有红点点是什么原因| 归元寺求什么最灵验| 竹笋炒什么好吃| 美尼尔症是什么病| 额头长痘痘是什么原因| 支原体弱阳性是什么意思| 老年人吃什么钙片补钙好| 吃李子不能吃什么| 姜枣茶什么季节喝最好| 在干什么| 心计是什么意思| 宫腔内异常回声是什么意思| 伤口恢复吃什么好得快| 小孩血压低是什么原因| 万劫不复什么意思| 姜黄与生姜有什么区别| 小儿感冒吃什么药| 青苹果什么时候成熟| 左侧肚脐旁边疼是什么原因| 祖坟冒青烟是什么意思| 人工流产和无痛人流有什么区别| 喉咙有白痰是什么原因| 冰岛茶属于什么茶| 骨折移位有什么感觉| 无济于事的意思是什么| 肺气不足吃什么中成药| 澳门有什么好玩的地方| 药鱼用什么药效果最好| 糖尿病患者主食应该吃什么| 缅怀什么意思| fa是什么| 88年什么命| 为什么一热身上就痒| 正值当年什么意思| 770是什么意思| hoegaarden是什么啤酒| 为什么家里会有蜈蚣| 腊梅什么时候开花| 血糖高喝什么饮料好| 诺如病毒拉的大便是什么样的| 孕妇肚子疼是什么原因| 衬衫搭配什么裤子好看| 标准是什么意思| 部队政委是什么级别| 左室舒张功能减低什么意思| 淘宝什么时候成立的| 腿麻挂什么科| 12月26是什么星座| 男朋友生日送什么礼物| 为什么要写作业| 血糖高可以吃什么主食| 什么牙什么牙| 女生diy什么意思| 什么是认证| 大熊猫属于什么科| 诺五行属什么| 甲醛中毒什么症状| 什么是尿崩症| 绣眼鸟吃什么| er什么意思| 眉毛变白是什么原因| 用什么梳子梳头发最好| 刷酸是什么意思| 挪揄是什么意思| 吃什么食物快速降糖| 泄气的意思是什么| 房颤什么症状| 什么样人穿棉麻好看| 深水炸弹什么意思| 为什么一直放屁| 烟花三月是什么意思| 天德月德是什么意思| 精字五行属什么| 仁波切是什么意思| 维字五行属什么| 开窍是什么意思| 心肌供血不足用什么药| 冬天喝什么汤| 牛黄安宫丸什么时候吃最好| 百度Zum Inhalt springen

什么食物含碘

aus Wikipedia, der freien Enzyklop?die
百度 而单反领域佳能领跑倒不是什么新鲜事,这也基本符合全球的单反相机市场表现。

Ein Computerprogramm oder kurz Programm ist eine den Regeln einer bestimmten Programmiersprache genügende Folge von Anweisungen (bestehend aus Deklarationen und Instruktionen), um bestimmte Funktionen bzw. Aufgaben oder Probleme mithilfe eines Computers zu bearbeiten oder zu l?sen.[1]

Die bekannteste Form von Programmen sind Anwendungsprogramme wie bspw. Apps.

'Computerprogramm', Begriffszusammenh?nge und im Sprachgebrauch auftretende Synonyme

Ein Computerprogramm geh?rt zur Software eines Computers. Es liegt meist auf einem Datentr?ger als ausführbare Programmdatei, h?ufig im sogenannten Maschinencode, vor, die zur Ausführung in den Arbeitsspeicher des Rechners geladen wird. Das Programm wird als Abfolge von Maschinen-, d. h. Prozessorbefehlen von dem oder den Prozessoren des Computers verarbeitet und damit ausgeführt.

Computerprogramme entstehen im Rahmen der Softwareentwicklung. Die dabei direkt auf einzelne Programme bezogenen Aktivit?ten bezeichnet man im allgemein als Programmierung oder auch als Implementierung. Dabei entsteht zun?chst für jedes Programm ein sog. Quelltext, den Programmierer in einer Programmiersprache abgefasst haben. Er besteht aus einer Abfolge von (zumeist der englischen Sprache entnommenen) Anweisungen, die (für Programmierer) im Allgemeinen verst?ndlicher sind (z. B. ADD, SUB, AND, OR) und durch menschliche Benutzer einfacher bearbeitbar sind als der sp?ter daraus entstehende Maschinencode.

Damit ein in einer Hochsprache geschriebenes Programm ausgeführt werden kann, muss sein Quellcode in Maschinencode übersetzt werden. Eine Anweisung einer h?heren Programmiersprache wird im Allgemeinen in mehrere Maschinenbefehle übersetzt. Der übersetzungsvorgang wird Kompilierung genannt. Um aus dem Quelltext den Maschinencode zu generieren, wird ein Assembler, Compiler oder Interpreter ben?tigt. Dieser übersetzt die Anweisungen der Programmiersprache in die semantisch entsprechenden Befehle der Maschinensprache des zu verwendenden Computers.

Der Programmcode kann in Dateien gespeichert werden, die meist durch eine Dateiendung gekennzeichnet sind. Quelltextdateien weisen damit auf die verwendete Hochsprache hin (<programm>.c: ein in C formuliertes Programm). Sie k?nnen im Allgemeinen mit einem einfachen Texteditor bearbeitet werden. Eine Datei, die dagegen Maschinencode enth?lt, besitzt keine oder eine betriebssystemspezifische Endung, die lediglich auf ihre Ausführbarkeit hinweist (<programm>.exe bei MS-DOS und Windows; <programm> bei unixoiden Systemen). Sie kann oft als Kommando in einem Terminal (Eingabeaufforderung) aufgerufen werden. Siehe auch Programmbibliothek.

Im Sprachgebrauch wird Computerprogramm meist zu Programm verkürzt oder der Begriff Software verwendet. Allerdings ist Computerprogramm kein Synonym zu Software; vielmehr ist ?Software‘ ein IT-Sammelbegriff für Nicht-Hardware, zum Beispiel für Betriebssystem, Datenbank oder für eine komplette, für den Benutzer fertige IT-Anwendung – die Komponenten wie Grafik- und Audiodateien, Schriftarten, Hilfetexte usw. umfassen kann.

Ein gr??eres Computerprogramm besteht meist aus mehreren Modulen – die entweder zum Programm selbst geh?ren oder die als Bausteine (Unterprogramme) aus bereits bestehenden Programmbibliotheken bei der Ausführung des Programms benutzt werden. Im umgekehrten Fall k?nnen Computerprogramme Teil eines übergeordneten, ein gr??eres Aufgabengebiet abdeckenden Anwendungssystems sein; Beispiel: Gehaltsabrechnung, Finanzbuchhaltung, Meldewesen. Die Anweisungen, die (als Teil von Programmen) einen konkreten L?sungsweg repr?sentieren, werden als Algorithmus bezeichnet; Beispiel: Berechnen der Mehrwertsteuer.

Die Entwicklung von Computerprogrammen ist das Gebiet der Softwaretechnik. Je nach Komplexit?t der zu entwickelnden Computerprogramme geschieht dies im Rahmen von Projekten. Die Aktivit?ten der Beteiligten werden dabei meist unter Anwendung von Vorgehensmodellen, speziellen Methoden und Werkzeugen zur Softwareentwicklung ausgeführt. In den Anf?ngen der Programmierung wurde – bis zur Entwicklung von Programmiersprachen – ausschlie?lich in Maschinencode programmiert. Sp?ter kamen h?here Programmiersprachen zum Einsatz.

Je komplexer ein Computerprogramm ist, desto anspruchsvoller ist die vorbereitende Planung und desto wichtiger die Erfahrung der ausführenden Programmierer. Bei gr??eren Programmen kommt es aufgrund mangelnder Planung und Erfahrung der Programmierer oft zu unn?tig komplexen und/oder ineffizienten Programmen oder Programmteilen (siehe auch Bloatware).

Klassifizierungsm?glichkeiten

[Bearbeiten | Quelltext bearbeiten]

Neben den für Software im Allgemeinen geltenden Unterscheidungsmerkmalen lassen sich Computerprogramme (als Untervariante von Software) nach den folgenden, beispielhaft genannten Kriterien unterscheiden:

  • Quellprogramme (in einer bestimmten Programmiersprache) oder Maschinenprogramme (ausführbar auf bestimmten Plattformen) oder Programme in einem Zwischencode
  • Hauptprogramme (aufgerufen über Betriebssystem-Kommandos) oder Unterprogramme (aufgerufen durch andere Programme). Sonderformen treten auf, wenn Programme z. B. über technische Steuerungskomponenten aufgerufen werden, z. B. über serviceorientierte Architekturen, automatisiertes Workflow-Management.
  • Stapelprogramme (verarbeiten ?Stapel‘ von Daten) bzw. Shellskripte oder Dialogprogramme (stehen in Interaktion mit Benutzern, z. B. über Dialoge)
  • Nach dem Ort der Speicherung und Programmausführung unterschieden k?nnen Programme lokal (auf einem Arbeitsplatzrechner) gespeichert und ausgeführt werden oder auf einem Server installiert sein und trotzdem lokal (nach dem Laden über eine Online-Verbindung) ausgeführt werden oder nur auf dem Server gespeichert und dort auch ausgeführt werden. Bei verteilten Anwendungen werden Programmteile auf unterschiedlichen Rechnern ausgeführt, z. B. die Gesch?ftslogik und Datenhaltung im Server, Funktionen der Benutzeroberfl?che am lokalen Rechner; im rein technischen Sinn stehen hierbei verschiedene Programme miteinander in Verbindung.

Die Analytische Maschine von Charles Babbage

[Bearbeiten | Quelltext bearbeiten]

Charles Babbage stellte bereits 1832 einen Demonstrator seiner Differenzmaschine No. 1 vor, verfolgte ab 1834 jedoch das Konzept einer per Dampfkraft betriebenen Rechenmaschine für die allgemeine Anwendung, die er englisch ?Analytical Engine nannte, ?Analytische Maschine“.[2] Diese h?tte per Lochkarten programmiert werden k?nnen, unterschiedliche Rechnungen durchzuführen, sodass die Auswertung polynomialer Funktionen (die alleinige Funktion der Differenzmaschine) nur ein Programm unter vielen gewesen w?re.

Für die Entwicklung seiner universellen Rechenmaschine brachte Charles Babbage zwischen 1837 und 1840 insgesamt 27 Programme zu Papier. Einige der Designentscheidungen für die Analytischen Maschine lassen sich direkt im Quelltext der Programme nachvollziehen.[2] So hat die Analytische Maschine bereits eine Trennung zwischen Speicher und Rechenwerk, was charakteristisch für Computer seit den 1940er Jahren ist.[3] Obwohl nie gebaut, gilt die Analytical Engine damit als der erste Computer der Geschichte,[4] oder zumindest als dessen Vorl?ufer[5] nach der Definition einer Universellen Rechenmaschine (englisch multipurpose computing machine) nach Alan Turing.[6]

Seine Notizen, die auch die Programme beinhalten, blieben unver?ffentlicht und wurden 1937 wiederentdeckt.[7] Die Quelltexte der Programme selbst wurden erst 1982 erstmals untersucht.[8] Die Notizen von Charles Babbage zur Analytical Engine sind in den ?babbage papers‘ des Science Museums von London frei, als Open Access, abrufbar.[9]

Das erste Programm tr?gt den 4. August 1837 als Datum und befasst sich mit Simultangleichungen der Cramerschen Regel. Einige der sp?teren Programme sind relativ komplex, wie z. B. die Multiplikation von zwei Polynomen. Der Code enth?lt bereits Indirekte Adressierung und den bedingten Sprung (IF-THEN-ELSE-Befehle).

Das erste ver?ffentlichte Computerprogramm von Ada Lovelace

[Bearbeiten | Quelltext bearbeiten]

Ada Lovelace, Tochter des britischen Dichters Lord Byron, traf Charles Babbage 1833 und unterhielt mit ihm bis zu ihrem Tod 1852 eine Freundschaft. Ab ca. 1841 arbeitete sie mit ihm zusammen an der Analytischen Maschine.

1843 übersetzte sie ein Manuskript des italienischen Ingenieurs Luigi Federico Menabrea über die Analytical Engine ins Englische, versah die übersetzung jedoch mit zahlreichen zus?tzlichen Anmerkungen zum konzeptionellen Unterschied zwischen Babbage’s Differenzmaschine und der Analytischen Maschine. Dazu schrieb sie auch ein Programm, das die Bernoulli-Zahlen berechnet.[10] Es ist die weltweit erste Publikation eines Computerprogramms, wodurch Ada Lovelace als die erste Programmiererin gilt.[11][12][13]

Die 1980 ver?ffentlichte Programmiersprache Ada ist nach Ada Lovelace benannt.

Erste Programme auf Lochstreifen

[Bearbeiten | Quelltext bearbeiten]

In den Jahren 1936 bis 1941 entwarf Konrad Zuse die Rechner Z1 und Z3, die lange Befehlsfolgen auf einem Lochstreifen verarbeiteten, die ersten Computerprogramme, die auf realen Maschinen ausgeführt werden konnten. Die Rechner beherrschten die vier Grundrechenarten und Quadratwurzelberechnungen auf bin?ren Gleitkommazahlen, der Lochstreifen enthielt jeweils eine Rechenoperation und eine Speicheradresse.[14]

Auf Zuse geht auch die erste h?here Programmiersprache Plankalkül zurück. Damit lassen sich Probleme maschinenunabh?ngig formulieren und sp?ter in eine maschinenlesbare Form überführen.

Programme im Arbeitsspeicher

[Bearbeiten | Quelltext bearbeiten]

Der EDVAC-Rechner, der auf einem Entwurf von John von Neumann aus dem Jahre 1945 basiert, hatte einen Quecksilber-Verz?gerungsspeicher für 1024 Fest- oder Gleitkommazahlen mit jeweils 44 Bit. Jede Speicherzelle konnte statt einer Zahl auch einen Befehl aufnehmen. Bei diesem Rechnerkonzept war es m?glich, die Befehle eines Computerprogramms vor der Ausführung zuerst in den Arbeitsspeicher zu übertragen. Das ist heute noch üblich. EDVAC wurde jedoch erst im Jahr 1951 teilweise fertiggestellt. Der Demonstrationsrechner Manchester SSE und der auf dem EDVAC aufbauende EDSAC-Rechner hatten schon vorher Programme aus dem Arbeitsspeicher ausgeführt.

H?here Programmiersprachen und Compiler

[Bearbeiten | Quelltext bearbeiten]

Ende der 1950er-Jahre wurden Computer so leistungsf?hig, dass spezielle Programme, Compiler genannt, Quelltexte in h?heren Programmiersprachen automatisch in Maschinenbefehle, also ausführbare Programme, übersetzen konnten. Ausführbare Programme k?nnen dann, wie beim EDVAC, in den Speicher geladen und abgearbeitet werden.

Mit Fortran, COBOL, ALGOL und LISP entstanden in den sp?ten 1950er-Jahren die ersten standardisierten h?heren Programmiersprachen. Programme in diesen Sprachen laufen, durch einen entsprechenden Compiler übersetzt, auf unterschiedlichen Rechnern. Sie k?nnen teilweise auch noch auf modernen Computern eingesetzt werden.

Vom Algorithmus zum Programm

[Bearbeiten | Quelltext bearbeiten]

Berechnung des gr??ten gemeinsamen Teilers

[Bearbeiten | Quelltext bearbeiten]

Es soll ein Programm zur Bestimmung des gr??ten gemeinsamen Teilers (ggT) zweier Zahlen erstellt werden. Zun?chst muss ein geeigneter Algorithmus gefunden werden.

Der Euklidische Algorithmus, der bereits um 300 v. Chr. beschrieben wurde, ermittelt den gr??ten gemeinsamen Teiler (ggT) zweier natürlicher Zahlen a und b:

  1. Sei a die gr??ere der beiden Zahlen a und b.
    Wenn a kleiner als b ist, dann vertausche die Zahlen.
  2. Setze a auf den Wert a - b.
  3. Wenn a und b ungleich sind, dann fahre mit Schritt 1 fort.
    Wenn a und b gleich sind, dann ist der Algorithmus beendet.
    Diese Zahl ist der gr??te gemeinsame Teiler.

Verwendung einer Programmiersprache

[Bearbeiten | Quelltext bearbeiten]

Sobald eine formale Beschreibung eines Algorithmus, also eine genau definierte Verarbeitungsvorschrift, vorliegt, kann der Algorithmus umgesetzt (implementiert) werden. Dazu wird eine geeignete Programmiersprache ausgew?hlt.

Zur Umsetzung wird heute meist eine h?here Programmiersprache verwendet, die von einem Computer eventuell nicht direkt ausgeführt werden kann, sondern zuerst kompiliert oder interpretiert werden muss.

In Sprachen wie Pascal dienen Variablen, Ausdrücke, Vergleiche, Zuweisungen und Kontrollstrukturen zur Umsetzung des ggT-Algorithmus:

while a <> b do         // Schritt 3: solange a ungleich b
begin
    if b > a then       // Schritt 1: falls b gr??er als a
    begin
        temp := a;      // a und b vertauschen
        a := b;
        b := temp;
    end;

    a := a - b;         // Schritt 2: a durch a - b ersetzen
end;

Berücksichtigung aller Sonderf?lle

[Bearbeiten | Quelltext bearbeiten]

Bei der Umsetzung wird mit der Prüfung von Schritt 3 begonnen. Der ursprüngliche Algorithmus berücksichtigt nicht den Fall, dass a und b bereits zu Beginn gleich sein k?nnen. W?re es die Aufgabe, den gr??ten Teiler von 103 und 103 zu finden, würde ein Mensch sofort das Ergebnis 103 nennen, er würde den Algorithmus gar nicht bemühen. Der originale Algorithmus würde aber null ergeben. Die Umsetzung auf einem Rechner muss auch alle Sonderf?lle berücksichtigen. Durch das Vorziehen von Schritt 3 wird der Sonderfall hier korrekt behandelt.

Elementare Schritte

[Bearbeiten | Quelltext bearbeiten]

Pascal und andere Programmiersprachen besitzen keine Operation zum Vertauschen von Zahlen. Dies muss daher in elementarere Schritte umgesetzt werden. Die zus?tzliche Variable temp, eine sogenannte Hilfsvariable, erlaubt die Vertauschung mit Hilfe von drei Zuweisungen:

temp := a;      // Wert von a in der Hilfsvariablen temp retten
a := b;         // a mit dem Wert von b überschreiben
b := temp;      // b mit dem Wert von temp überschreiben

Auch dies ist ein kleiner Algorithmus.

Ein vollst?ndiges Programm

[Bearbeiten | Quelltext bearbeiten]

Damit daraus ein korrektes Programm wird, muss der Algorithmus noch um Ein- bzw. Ausgabeanweisungen, oft jedoch auch um Variablen und eine Programmstruktur erg?nzt werden. Diese sind nicht Teil des eigentlichen Algorithmus:

program Ggt;                        // Programmkopf
    var a, b, temp: Integer;        // Variablendefinition
begin
    ReadLn(a, b);                   // Eingabe von a und b

    while a <> b do                 // Euklidischer Algorithmus
    begin
        if b > a then
        begin
            temp := a;
            a := b;
            b := temp;
        end;

        a := a - b;
    end;

    WriteLn(a);                     // Ausgabe von a
end.                                // Programmende

übersetzung und Ausführung

[Bearbeiten | Quelltext bearbeiten]

Ein solches Programm wird unter Verwendung eines Texteditors erstellt und als Quellcode in einer Datei oder Programmbibliothek (für Quellcode) gespeichert. Anschlie?end kann der Quellcode zu einer festen Ablaufanweisung für den Computer 'übersetzt’ werden. Hierzu ist ein Compiler erforderlich, der den Code aus der jeweiligen Programmiersprache in die Maschinensprache übersetzt und als Ergebnis ein ausführbares Programm erstellt, welches als Datei oder in einer Programmbibliothek (für ausführbare Programme) abgelegt wird. Dieses Programm kann dann über ein Betriebssystem als Prozess gestartet werden, und zwar beliebig oft (ohne neue übersetzung). Solch ein einzelner laufender Prozess eines Programms wird auch Programminstanz genannt.[15]

Einige Programmiersprachen verwenden keinen Compiler, sondern einen Interpreter, der Programme erst zur Laufzeit in Maschinensprache übersetzt.

Eine weitere M?glichkeit besteht in der Verwendung von Zwischencode (Bytecode), der vom Compiler an Stelle des Maschinencodes generiert wird. Ein Beispiel dafür ist Java: Der Java-Compiler erzeugt Bytecode, welcher dann auf der sogenannten virtuellen Maschine ausgeführt wird. Die virtuelle Maschine interpretiert oder übersetzt dann den Bytecode für das darunterliegende Betriebssystem.

Ebenso muss in manchen Rechnerumgebungen, in der Regel bei Gro?rechnern, der vom Compiler erstellte Maschinencode noch mit einem Systemprogramm ('Linkage Editor' o. ?.) nachbearbeitet werden, wobei ggf. weitere Unterprogramme und Systemroutinen 'eingebunden' werden k?nnen. Erst so ist das entstandene Programm ausführbar.

Mittels spezieller Programme, sogenannter Decompiler, ist es in begrenztem Ma?e m?glich, aus dem Maschinencode wieder einen in Hochsprache lesbaren Quelltext zu erzeugen.

Programme haben mindestens zwei klar getrennte Lebensphasen: Der Zeitraum bis zum Zeitpunkt der Kompilierung (inklusive) wird Compilezeit genannt, welche im Gegensatz zur Laufzeit steht. In der Compilezeit-Phase hat das Programm statische Eigenschaften, gegeben nur durch den festen Quellcode. Nach der Kompilierung und mit der Ausführung besitzt das bin?re Programm dynamische Eigenschaften und Verhalten in zus?tzlicher Abh?ngigkeit der jeweiligen Laufzeitumgebung (variierende Hardware, User-Interaktion etc.).

In umfassenderen Sinn lassen sich Lebensphasen von Programmen auch als Software-Lebenszyklus verstehen. Demnach geh?ren zur inhaltlich pr?zisen Festlegung des Programm-Inhalts die Projektphasen Problemstellung, Analyse und Entwurf, anschlie?end folgt die technische Implementierung, in der das Programm in Form von Quelltext entsteht. Danach befindet es sich in der Phase Einführung. Nach diesen Entstehungsphasen von Programmen folgt deren produktive Nutzung, bei Bedarf werden Anpassungen und Erweiterungen (Wartungs-/Pflegephase) vorgenommen.

Aus betriebswirtschaftlicher Sicht lassen sich auch Computerprogramme nach dem allgemeinen Produktlebenszyklus klassifizieren.

Ein Computerprogramm wird urheberrechtlich geschützt, wenn es individuelles Ergebnis einer eigenen geistigen Sch?pfung ihres Urhebers ist (§ 69a Abs. 3 UrhG). Mit Umsetzung der Urheberrechtsrichtlinie aus dem Jahre 2001 wurde die Schutzschwelle für Computerprogramme in den EG-Mitgliedsstaaten harmonisiert. Es genügt ein Minimum an Individualit?t für den Schutz (Kleine Münze). Es wird vermutet, dass sich die Individualit?t des Urhebers im Programm niedergeschlagen hat, wenn Spielraum dazu bestand. Geistiger Gehalt wird vermutet, wenn das Programm von einem menschlichen Urheber geschaffen wurde.

Entwicklung

In der Bundesrepublik erfolgte die gesetzliche Anerkennung des Urheberrechtsschutzes 1985;[16] die Rechtsprechung hielt ihn schon vorher für m?glich.[17]

1991 folgte die Richtlinie 91/250/EWG über den Rechtsschutz von Computerprogrammen, 1993 gesetzliche Regelungen in ?sterreich[18] und der Schweiz[19] sowie 1996 in Liechtenstein.[20]

In der DDR hatte die Rechtsprechung 1979 die urheberrechtliche Schutzf?higkeit verneint,[21] jedoch konnte in Wirtschaftsvertr?gen über wissenschaftlich-technische Leistungen die Vergabe von Software durch andere Partner als die erarbeitende Wirtschaftseinheit ausgeschlossen werden.[22]

Commons: Computerprogramm – Sammlung von Bildern, Videos und Audiodateien
Wiktionary: Computerprogramm – Bedeutungserkl?rungen, Wortherkunft, Synonyme, übersetzungen

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ISO/IEC 2382-1:1993 definiert ?computer program“: ?A syntactic unit that conforms to the rules of a particular programming language and that is composed of declarations and statements or instructions needed to solve a certain function, task, or problem.“ Bis 2001 definierte die DIN 44300 ?Informationsverarbeitung Begriffe“ identisch.
  2. a b Raúl Rojas: Die ersten Computerprogramme der Welt. In: Heise online. 18. September 2016. Abgerufen am 22. Januar 2022.; Zitat: ?Charles Babbage hat ab 1837 innerhalb von drei Jahren 27 Programme für die schlie?lich unvollendet gebliebene ?Analytische Maschine‘ auf Papier gebracht“.
  3. Doron D. Swade: Der mechanische Computer des Charles Babbage. Abgerufen am 22. Januar 2022 (Spektrum der Wissenschaft 4/1993, S. 78).
  4. Micka?l Launay: Der gro?e Roman der Mathematik: Von den Anf?ngen bis heute. C.H.Beck, 2018, ISBN 978-3-406-72152-6 (eingeschr?nkte Vorschau in der Google-Buchsuche): ?Diese revolution?re Funktionsweise macht Babbages Erfindung zum ersten Computer der Geschichte.“
  5. Jürgen Beetz: Digital: Wie Computer denken. Springer-Verlag, 2019, ISBN 978-3-662-58630-3, 1.1 Eine Analogie zu analog und digital, S. 3 (eingeschr?nkte Vorschau in der Google-Buchsuche): ?Er erfand zwei mechanische programmierbare Rechenmaschinen, die er allerdings nie zum Laufen brachte. Trotzdem gelten sie als Vorl?ufer des modernen Computers.“
  6. Eileen Lucas: Charles Babbage and Ada Lovelace: The Pen Pals Who Imagined the First Computer. Rosen Publishing, 2021, ISBN 978-1-72534-225-5, 6.1 Conclusion, S. 66 (englisch, eingeschr?nkte Vorschau in der Google-Buchsuche): “In the 1930s, British mathematician Alan Turing introduced a multipurpose computing machine. Turing’s ‘Universal Machine’ would have some way to ‘read’ and ‘write’ data, a way to move the data in and out of a storage system, and a code of symbols by which the computer could instruct itself. According to some computer historians, the Turing Machine is still the standard against which all computers are measured. By that standard, Babbage’s Analytical Engine was the first computer.”
  7. Joachim Stolze, Dieter Suter: Quantum Computing: A Short Course from Theory to Experiment. Wiley, 2004, ISBN 3-527-40438-4, 3.1 Bit of history, S. 27 (englisch, eingeschr?nkte Vorschau in der Google-Buchsuche): “Babbage’s unpublished notebooks were rediscovered in 1937…”
  8. Allan G. Bromley: Charles Babbage’s Analytical Engine, 1838. In: IEEE (Hrsg.): Annals of the History of Computing, July-Sept. 1982. Band 4, Nr. 3, 1982, ISSN 0164-1239, S. 196 ff., doi:10.1109/MAHC.1982.10028 (englisch).
  9. Notations of calculations for the Analytical Engine. In: The Babbage Papers. Science Museum Group, abgerufen am 22. Januar 2022 (englisch).
  10. Roland Schmitz: Theoretische Informatik für Dummies. 1. Auflage. Wiley, 2019, ISBN 978-3-527-71431-5, 15: Top-Ten-Theoretiker: Ada Lovelace (1815–1852) – (eingeschr?nkte Vorschau in der Google-Buchsuche): ?Als eine von ganz wenigen Zeitgenossen erkannte sie [Anm.: Ada Lovelace] das wahre Potenzial von Babbages Analytical Engine und arbeitete ab ca. 1841 mit ihm zusammen. Der H?hepunkt dieser Zusammenarbeit kam im Jahr 1843, als Ada Lovelace ein Manuskript des italienischen Ingenieurs Luigi Menabrea, in dem dieser die Analytical Engine detailliert beschrieben hatte, ins Englische übersetzte. Sie belie? es aber nicht beim blo?en übersetzen, sondern fügte eigene ?Notes of the Translator? hinzu, die am Ende doppelt so lang waren wie Menabreas ursprüngliches Manuskript. Die ?Notes? begründeten ihren sp?teren Weltruhm: Sie machte den konzeptionellen Unterschied zwischen der Differential [Anm.: Engine] und der Analytical Engine deutlich …, beschrieb moderne Programmierkonzepte wie Subroutinen und relative Funktionsaufrufe und beschrieb ?u?erst detailliert die Instruktionen, die n?tig waren, damit die Analytical Engine eine komplizierte Aufgabe aus der Zahlentheorie (die Berechnung so genannter Bernoulli-Zahlen) bearbeiten konnte. Diese Instruktionen werden heute als das erste Computerprogramm überhaupt angesehen, und Ada Lovelace als der Welt erste Programmiererin.“
  11. Dorothy Stein: Ada, a life and a legacy. MIT Press, Cambridge, Mass. 1985, ISBN 0-262-19242-X.
  12. Jürgen Beetz: Digital: Wie Computer denken. Springer-Verlag, 2019, ISBN 978-3-662-58630-3, 1.1 Eine Analogie zu analog und digital, S. 3 (eingeschr?nkte Vorschau in der Google-Buchsuche): ?Sie verfasste schriftliche Kommentare zur Analytical Engine und entwickelte eine Methode zur Programmierung von Maschinen nach dem ?Babbage-System‘. Sie erdachte 1843 den ersten für einen ?Computer‘ vorgesehenen Algorithmus zur Berechnung von Bernoullizahlen … und schrieb damit das erste Computerprogramm.“
  13. Reflections on the Decline of Science in England, and on Some of Its Causes. (eingeschr?nkte Vorschau in der Google-Buchsuche): ?In 1843 Babbage's friend mathematician Ada Lovelace translated a French paper about the Analytical Engine and, in her own annotations, published how it could perform a sequence of calculations, the first computer program.“
  14. Bayerischer Rundfunk Martin Schramm: Konrad Zuse, John von Neumann und Co.: Der Computer hatte viele V?ter. 22. Februar 2022 (br.de [abgerufen am 4. Mai 2022]).
  15. Roland Hellmann: Rechnerarchitektur: Einführung in den Aufbau moderner Computer. Walter de Gruyter, 2013, ISBN 978-3-486-72002-0, S. 271 (eingeschr?nkte Vorschau in der Google-Buchsuche).
  16. Gesetz zur ?nderung von Vorschriften auf dem Gebiet des Urheberrechts vom 24. Juni 1985 (BGBl. I S. 1137); BT-Drs. 10/3360
  17. BGHZ 94, 276 (?Inkasso-Programm“, 9. Mai 1985)
  18. Urheberrechtsgesetz-Novelle 1993 – UrhGNov 1993, BGBl. Nr. 93/1993; siehe auch OGH, RIS-Justiz RS0076609
  19. Bundesgesetz über das Urheberrecht und verwandte Schutzrechte (Urheberrechtsgesetz, URG) vom 9. Oktober 1992, AS 1993, 1798
  20. Verordnung über bestimmte Schutzrechte im Bereich des Geistigen Eigentums (VGE) vom 30. Januar 1996, LGBl. 1996 Nr. 31
  21. Bezirksgericht Leipzig, NJ 1981, 236
  22. Zentrales Vertragsgericht, Spruchpraxis 11, 35 = Wirtschaftsrecht 1984, 21 = GRUR-Int. 1984, 305 (zu § 18 der 1. Durchführungsverordnung zum Vertragsgesetz)
什么叫溶血 牙齿为什么会掉 耳石症吃什么药最好 前列腺实质回声欠均匀什么意思 6月16什么星座
唯利是图是什么生肖 公务员是什么职业 27属什么 月黑见渔灯的见读什么 奶茶色是什么颜色
亟待解决什么意思 狗喜欢吃什么食物 梦到车坏了是什么意思 高血压的人不能吃什么 结甲是什么意思
肺纤维化是什么意思 长痘痘吃什么水果好 andy是什么意思 法西斯是什么意思啊 脾胃不和吃什么药
耷拉的近义词是什么hcv8jop5ns4r.cn 霸王硬上弓是什么意思hcv8jop2ns4r.cn 男性前列腺炎吃什么药hcv9jop5ns7r.cn 针眼是什么样子的图片hcv8jop7ns9r.cn 丞五行属什么hcv9jop5ns8r.cn
动物的耳朵有什么作用hcv8jop7ns7r.cn 啤酒花是什么helloaicloud.com 黄疸吃什么药bysq.com 什么样的疤痕影响当兵0735v.com sla是什么hcv8jop6ns5r.cn
654-2是什么药naasee.com 什么是yanzhenzixun.com 药流后吃什么消炎药比较好hcv9jop7ns4r.cn 临床是什么意思hcv9jop8ns1r.cn 血压低吃什么最快最有效hcv8jop3ns8r.cn
复方板蓝根和板蓝根有什么区别96micro.com 食管ca是什么意思hcv7jop5ns2r.cn 宝宝拉肚子吃什么药好得快hcv8jop4ns9r.cn 为什么吹空调会咳嗽tiangongnft.com 血氧低是什么原因hcv8jop1ns7r.cn
百度