2022年编程语言的德语介绍 .pdf

上传人:H****o 文档编号:33398833 上传时间:2022-08-10 格式:PDF 页数:13 大小:169.59KB
返回 下载 相关 举报
2022年编程语言的德语介绍 .pdf_第1页
第1页 / 共13页
2022年编程语言的德语介绍 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年编程语言的德语介绍 .pdf》由会员分享,可在线阅读,更多相关《2022年编程语言的德语介绍 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Programmiersprachen Programm = Text mit Anweisungen fr einen Computer; Widerspr chliche Anforderungen an Formulierung eines Programms: Soll einerseits f r den Menschen lesbar sein, andererseits von einer Maschine verarbeitbar; Anforderungen fr Lesbarkeit durch Menschen: onahe an gewohnter Umgangsspr

2、ache (z.B. Englisch), obersichtliche Struktur, okompakte Notation, oetc. Anforderungen fr Ausf hrbarkeit durch Maschinen: opr?zise und eindeutig, oleicht in Strukturen der Maschine umsetzbar, oetc. Ergebnis: Programmiersprachen mit folgenden Eigenschaften oUmgangssprachliche Komponenten (W?rter wie

3、if, while und main), oNotation teilweise angelehnt an mathematische Schreibweise, oGliederung in Zeilen mit Einrckung, oformale Syntax, d.h. kein Auslegungsspielraum omaschinen-nahe Grundbausteine (ganze Zahlen) 2.1 Generationen Programmiersprachen haben sich ber mehrere Generationen hinweg entwicke

4、lt: Maschinensprachen (1. Generation) Die Sprachen der 1. Generation sind Maschinensprachen, deren Elemente direkt aus dem Befehlsvorrat bestimmter Computer abgeleitet sind. Maschinensprache ist spezifisch fr genau einen Prozessor und ein Betriebssystem und damit in h?chstem Ma?e unportabel. Maschin

5、enprogramme werden heute nicht mehr direkt geschrieben. Assemblersprachen (2. Generation) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - Assemblersprachen, in denen Maschinenbefehle durch leichter lesbare Abkrzungen ersetzt sind. Immer no

6、ch diktiert die Zielmaschine die Struktur der Sprache. Assemblerprogramme werden heute nur noch dann geschrieben, wenn es aus zwingenden Grnden notwendig ist. H?hereProgrammiersprachen (3. Generation) Sprachen der 3. Generation (auch genannt h?here Programmiersprachen oder problemorientierte Program

7、miersprachen) orientieren sich an den zu l?senden Problemen und nicht mehr an den benutzten Maschinen. Die meisten zeitgem?en Programmiersprachen fallen in diese Kategorie. Dazu z?hlen C und C+, die Programmiersprachen, die in dieser Vorlesung gelehrt wird. Spezialsprachen (4., 5. Generation?) Schli

8、e?lich werden manche Sprachen einer 4. oder 5. Generation zugeordnet. Diese Sprachen sind auf bestimmte Anwendungen und Problemklassen zugeschnitten und k?nnen nicht mehr als general purpose languages bezeichnet werden. 2.2 Eigenschaften von Programmiersprachen Eigenschaften von Programmiersprachen

9、werden auf verschiedenenEbenen festgelegt; SyntaxDie Syntax regelt die Rechtschreibung einer Programmiersprache. Sie l?t sich formal festlegen, z.B. mit Syntaxdiagrammen oder in einer Grammatik.SemantikDie Semantik regelt die Bedeutung einzelner Sprachelemente und ihr Zusammenspiel. Sie l?t sich vie

10、l schwieriger exakt festhalten. Die meisten Versuche, Semantik formal zu fixieren, m ndeten bisher in schwer lesbaren oder sehr umfangreichen Beschreibungen. Unabh?ngig von der Beschreibung ist das Thema Semantik noch wesentlich komplexer als hier angedeutet. So gibt es z.B. eine statische und eine

11、dynamische Semantik, von denen erstere bis zu einem gewissen Grad automatisch berpr ft werden kann, w?hrend letztere erst zur Laufzeit zum Tragen kommt. PragmatikDie Pragmatik beschreibt Einschr?nkungen und Randbedingungen, die sich aus konkreten Implementierungen heraus ergeben. Die Grenzen zwische

12、n Syntax und Semantik, sowie zwischen Semantik und Pragmatik sind verschwommen und lassen sich nicht eindeutig ziehen. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 2.3 Formalismen zur Beschreibung der Syntax Zur Definition der exakten S

13、yntax von Programmiersprachen kommen verschiedene Hilfsmittel zum Einsatz. Die beiden wichtigsten (Syntaxdiagrammen und Grammatiken) werden hier gezeigt. 2.3.1 Syntaxdiagramme Syntaxdiagramme sind halbgraphische Dastellungen, die gegenber Grammatiken bersichtlicher und leichter lesbar sind. 2.3.1.1

14、Aufbau EinzeldiagrammeUm die Syntax einer Sprache mit einem Syntaxdiagramm zu beschreiben, werden mehrere Einzeldiagramme verwendet. Das dient der bersichtlichkeit, ist aber aus rein formaler Sicht nicht zwingend notwendig. Alle Einzeldiagramme zusammen bilden ein komplettes Syntaxdiagramm. Jedes Ei

15、nzeldiagramm hat einen eindeutigen Namen. PfeileJedes Einzeldiagramm enth?lt Knoten, die mit Pfeilen verbunden sind. Die Pfeile regeln die Abfolge der Knoten. Pfeile k?nnen sich innerhalb eines Einzeldiagramms gabeln und zusammengef hrt werden. Terminale KnotenKnoten werden als K?sten gezeichnet. Es

16、 gibt zwei Arten von Knoten: terminale und nichtterminale Knoten. Terminale Knoten enthalten w?rtlich zu nehmende Texte. Sie werden durch Kreise, Ovale oder K?sten mit abgerundeten Ecken dargestellt. Nichtterminale KnotenNichtterminale Knoten benennen ein anderes Einzeldiagramm, das an dieser Stelle

17、 durchlaufen werden mu?. Nichtterminale Knoten werden durch K?sten mit normalen Ecken dargestellt. Man kann sich vorstellen, da? das benannte Einzeldiagramm anstelle des nichtterminalen Knotens eingeh?ngt wird. 2.3.1.2 Anwendung Ein Text ist (im Sinne des Syntaxdiagrammes) korrekt, wenn er mit einem

18、 kompletten Durchlauf des Syntaxdiagrammes vollst?ndig nachvollzogen werden kann. Dabei darf am 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - Ende weder ein Rest des Textes noch ein Rest des Syntaxdiagrammes unverarbeitet brigbleiben. Es

19、 kommt nur darauf an, da? es irgendeinen Weg durch das Syntaxdiagramm gibt, der zum Text pa?t. Es spielt keine Rolle, welche Abzweigungen dabei genommen werden. 2.3.1.3 Beispiel Das folgende Beispiel zeigt das Syntaxdiagramm zur Beschreibung der Syntax von ganzen Zahlen in C: Die Zeichenfolge +23085

20、9 entspricht z.B. dem Syntaxdiagramm, die Zeichenfolge 3.141592 dagegen nicht. 2.3.2 Grammatik in EBNF Grammatiken werden in unterschiedlichen Notationen formuliert. Eine sehr verbreitete Notation ist die EBNF (= Erweiterte Backus-Naur Form). Die EBNF ist gegenber Syntaxdiagrammen kompakter und als

21、reine Textdarstellung leichter maschinell zu verarbeiten. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - Seltener verwendet wird die ursprngliche, einfache BNF (= Backus-Naur Form). Dieser fehlen gegenber der EBNF ein paar bequeme, abkrze

22、nde Schreibweisen; mit beiden Formen lassen sich aber dieselben Grammatiken wiedergeben. 2.3.2.1 Zusammenhang mit Syntaxdiagrammen Mit einer Grammatik in EBNF wird die korrekte Syntax einer formalen Sprache beschrieben, genauso wie mit Syntaxdiagrammen. Im Gegensatz zu Syntaxdiagrammen erlaubt eine

23、EBNF nicht alle Verbindungen und erzwingt damit strengere Auflagen. Das Ergebnis sind zwangsl?ufig besser strukturierte Grammatiken. Demnach kann zwar jede EBNF als Syntaxdiagramm formuliert werden, das Umgekehrte gilt nicht in jedem Fall. 2.3.2.2 Aufbau und Metasyntax ProduktionenEine EBNF besteht

24、aus einer Liste von Produktionen. Jede Produktion beschreibt die Syntax eines bestimmten Grammatikfragmentes. Produktionen werden als eine Art Gleichungen geschrieben. Auf der linken Seite steht ein Name fr das definierte Grammatikfragment; auf der rechten Seite steht eine Folge von Symbolen, die de

25、n Aufbau des Grammatikfragmentes festlegen. Zwischen linker und rechter Seite wird das Trennzeichen := gesetzt. Das Ende einer Produktion wird mit einem Punkt gekennzeichnet, also schematisch: linke Seite := rechte Seite . Terminale und NichtterminaleVon den Symbolen, die auf der rechten Seite einer

26、 Produktion vorkommen, gibt es zwei Arten: Die Terminale stehen fr sich selbst, sie sind w?rtlich zu nehmen. Die Nichtterminale benennen eine andere Produktion, die an dieser Stelle einzusetzen ist. Zur Unterscheidung werden Terminale oft in G?nsef?chen gesetzt, Nichtterminale unterstrichen oder ein

27、fach berhaupt nicht markiert. OptionaleSymbolfolgenUm eine Reihe von Symbolen auf der rechten Seite einer Produktion als optional zu kennzeichnen, wird diese in eckige Klammern gesetzt. Wiederholbare Symbolfolgen名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13

28、 页 - - - - - - - - - Eine Symbolfolge wird in geschweifte Klammern gesetzt, wenn sie beliebig oft wiederholt werden darf. Das schlie?t Weglassen, d.h. null-maliges Wiederholen, mit ein. Das Beispiel f r Syntaxdiagramme als EBNF: integer := sign digit digit. In diesem Zusammenhang ist eine alternativ

29、e Notation blich, die in der EBNF eigentlich nicht vorgesehen ist: Hinter die geschweifte Klammer kann auch ein Plus-Zeichen gesetzt werden, um ein- oder mehrmalige Wiederholung auszudrcken. Das obige Beispiel wrde dann k rzer lauten: integer := sign digit+. Um die ursprngliche, beliebige Wiederholu

30、ng davon klar abzuheben, wird diese dann ausdr cklich mit einem Stern nach der geschweiften Klammer markiert. Die folgende Schreibweise ist umst?ndlicher, aber inhaltlich gleichwertig mit der vorhergehenden: integer := sign digit digit*. AlternativenWenn mehrere Symbolfolgen auf der rechten Seite ei

31、ner Produktion zur Auswahl stehen, werden die M?glichkeiten nacheinander aufgefhrt und mit senkrechten Strichen getrennt. Das folgende Beispiel zeigt die komplette EBNF fr eine integer-Konstante in C-Syntax: integer := sign digit digit. sign := + | -. digit := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9.

32、GruppierungSymbolfolgen k?nnen mit einfachen runden Klammern gruppiert werden, um Alternativen einzugrenzen. Auch die anderen Klammer-Arten (eckige und geschweifte) k?nnen so benutzt werden. Das folgende Beispiel ist zwar ungeschickt, illustriert aber diese M?glichkeit: integer := sign (0 | 1 | 2 |

33、3 | 4 | 5 | 6 | 7 | 8 | 9) digit. sign := + | -. digit := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9. MetasyntaxDie EBNF folgt einer eigenen Syntax, die mit der durch die EBNF beschriebenen Syntax nichts zu tun hat. Man nennt die EBNF-eigene Syntax ihre Metasyntax . Die Metasyntax der EBNF kann fast in i

34、hrem eigenen Formalismus beschrieben werden: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - ebnf := production. production := leftside := rightside . leftside := nonterminal. rightside := alternative | alternative. alternative := sequence

35、. sequence := rightside | rightside | ( rightside ) | symbol. symbol := terminal | nonterminal. terminal := doublequote text doublequote. nonterminal := identifier. identifier := letter letter | digit. Die folgenden Nichtterminale sind nicht mehr aufgel?st: letter steht fr einen Buchstaben; digit st

36、eht fr eine Ziffer; text steht fr eine Folge von beliebigen Zeichen au?er G?nsef?chen; doublequote steht fr das Terminal mit G?nsef?chen als Inhalt; 2.3.2.3 Beispiel Dateispezifikation Die folgende EBNF beschreibt die Syntax eines Pfadnamens einer Datei, wie er von vielen Unix-Kommandos erwartet wir

37、d: filespec := root dirspec name. root := /. dirspec := (name | . | .) /. name := char+. char := letter | digit | _ | + | - | :. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - Anmerkung: Die konkrete Auswahl der in Dateinamen zul?ssigen S

38、onderzeichen h?ngt von der Shell und deren Konfiguration ab. 2.3.2.4 Syntax von C Die komplette Syntax von C in EBNF-Notation finden Sie z.B. in KR. 2.4 C und C+ 2.4.1 Historische Entwicklung Diese Vorlesung fhrt die Programmiersprachen C und C+ ein, die beide zu den h?heren Programmiersprachen (im

39、Sinne der obigen Klassifizierung) z?hlen. C hat sich ursprnglich einen Namen als Sprache zur Systemprogrammierung gemacht (Implementierung von Unix). Ein erster Meilenstein in der Entwicklung von C war 1983 die Ver?ffentlichung des Buches The C Programming Language (Kernighan/Ritchie), das f r Jahre

40、 eine Art Pseudo-Standard festlegte. Mit ANSI-C wurde die Sprache 1988 offiziell standardisiert, so da? heute praktisch alle C-Compiler den gleichen Sprachumfang beherrschen. C ist seiner Art nach eine Programmiersprache aus der ?ra der strukturierten Programmierung, wie auch Pascal, Modula, u.a. C+

41、 wurde als Nachfolger von C geschaffen mit dem erkl?rten Ziel objektorientierte Programmierung zu erschlie?en. Wie bei C machte C+ einige Entwicklungsstufen durch, von denen eine erste 1990 mit der Ver?ffentlichung des Buches The Annotated C+ Reference Manual (Ellis/Stroustrup) ( the ARM) markiert w

42、ird. 1995 wurde der Draft-Standard fr ANSI-C+ verabschiedet. Dieses Dokument ist zwar noch keine endgltige Sprachnorm, tiefgreifende ?nderungen sind aber nicht mehr zu erwarten. C+ ist eine objektorientierte Programmiersprache, die weitgehend aufw?rtskompatibel zu C bleibt (d.h. da? C-Programme mit

43、wenigen Modifikationen auch von C+-Compilern akzeptiert werden). 2.4.2 Einsatz in der Vorlesung Die ersten Themen der Vorlesung sind neutral gegenber C und C+. Mit I/O, homogenen und heterogenen zusammengesetzten Datenstrukturen (Strings, Vektoren und Strukturen bzw. Klassen) werden aber Themen erre

44、icht, die sich in C+ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - wesentlich sicherer und eleganter behandeln lassen. Ab hier orientiert sich die Vorlesung an C+. Erst in der Nachfolgeveranstaltung Programmieren II kehren wir zu C zurck

45、. Zu diesem Zeitpunkt haben Sie die notwendigen Vorkenntnisse, um die inneren Abl?ufe von C nachvollziehen zu k?nnen. Diese sind letztlich auch fr C+ ma?geblich, werden dort aber gut abgeschirmt. Alle Ausfhrungen beziehen sich zun?chst auf ANSI-C. Sofern Spracheigenschaften besprochen werden, die nu

46、r in ANSI-C+ (aber nicht in ANSI-C) erlaubt sind, weist diese Markierung darauf hin. W?hrend die Syntax der Sprachen nicht allzu schwer zu erlernen ist, sind die Kenntnis der Semantik und Pragmatik von C(+) eines der wesentlichen Lernziele dieser Vorlesung. Die Syntax von C(+) l?t sich in einer Gram

47、matik festschreiben, die z.B. in der EBNF verfa?t sein kann. Die Semantik ist meist umgangssprachlich beschrieben und macht den gr?ten Teil des Inhaltes der weitverbreiteten Literatur aus. Ein Beispiel fr die Semantik ist z.B. die Forderung, da? jeder Bezeichner definiert bzw. deklariert sein mu?, b

48、evor er verwendet werden kann. Die Pragmatik der Sprachen findet sich oft in der Dokumentation von einzelnen Implementierungen, wie z.B. Compiler-Handbchern oder Release Notes. Ein Beispiel fr die Pragmatik ist die Begrenzung des Wertebereiches des Datentyps int, die von bestimmten Rechnerarchitektu

49、ren auferlegt wird. 2.5 bersetzen und Ausfhren von Programmen Ungeachtet aller h?heren Programmiersprachen k?nnen Computer nur Maschinenprogramme ausfhren. Alle anderen Sprachen mssen erst in ein Maschinenprogramm umgeformt (bersetzt) werden, bevor sie ausgefhrt werden k?nnen. Diese bersetzung ist b

50、ei Sprachen wie C oder C+ verh?ltnism?ig aufwendig. Sie l?t sich nicht mit vertretbarem Aufwand von Hand erledigen. Statt dessen werden die Sprachen mit spezialisierten Hilfsprogrammen, sogenannten bersetzern oder Compilern,automatisch in Maschinensprache transformiert. Compiler sind selbst sehr kom

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁