|
Showing 1 - 14 of
14 matches in All Departments
This text is an introduction to programming in general, and a
manual for programming with the language Modula-2 in particular. It
is oriented primarily towards people who have already acquired some
basic knowledge of programming and would like to deepen their
understanding in a more structured way. Neveltheless, an
introductory chapter is included for the benefit of the beginner,
displaying in a concise form some of the fundamental concepts of
computers and their programming. The text is therefore also
suitable as a self-contained tutorial. The notation used is
Modula-2, which lends itself well for a structured approach and
leads the student to a working style that has generally become
known under the title of structured programming. As a manual for
programming in Modula-2, the text covers practically all facilities
of that language. Part 1 covers the basic notions of the variable,
expression, assignment, conditional and repetitive statement, and
array data structure. Together with Palt 2 which introduces the
important concept of the procedure or subroutine, it contains
essentially the material commonly discussed in introductory
programming courses. Part 3 concerns data types and structures and
constitutes the essence of an advanced course on programming. Palt
4 introduces the notion of the module, a concept that is
fundamental to the design of larger programmed systems and to
programming as team work. The most commonly used utility programs
for input and output are presented as examples of modules.
This textbook provides a thorough and systematic introduction to
designing digital circuits. The author is the leading programming
language designer of our time and in this book, based on a course
for 2nd-year students at the Federal Institute of Technology (ETH)
in Zurich, he aims to close the gap between hardware and software
design. He encourages the student to put the theory to work in
exercises that include lab work culminating in the design of a
simple yet complete computer. The lab work is based on a
workstation equipped with a single field programmable gate array
chip and software tools for entering, editing, and analyzing
designs. This text is a modern introduction to designing circuits
using state-of-the-art technology and a concise, easy to master
hardware description language (Lola).
puter system. In 1971 one computer system had a Pascal compiler. By
1974 the number had grown to 10 and in 1979 there were more than
80. Pascal is always available on those ubiquitous breeds of
computer systems: personal computers andl professional
workstations. Questions arising out of the Southampton Symposium on
Pascal in 1977 [Reference 10] began the first organized effort to
write an officially sanctioned, international Pascal Standard.
Participants sought to consolidate the list of questions that
naturally arose when people tried to implement Pascal compilers
using definitions found in the Pascal User Manual and Report. That
effort culminated in the ISO 7185 Pascal Standard [Reference 11]
which officially defines Pascal and necessitated the revision of
this book. We have chosen to modify the User Manual and the Report
with respect to the Standard - not to make this book a substitute
for the Standard. As a result this book retains much of its
readability and elegance which, we believe, set it apart from the
Standard. We updated the syntactic notation to Niklaus Wirth's EBNF
and improved the style of programs in the User Manual. For the
convenience of readers familiar with previous editions of this
book, we have included Appendix E which summarizes the changes
necessitated by the Standard.
, A preliminary version o~ the programming language Pascal was
dra~ted in 1968. It ~ollowed in its spirit the A1gol-6m and Algo1-W
1ine o~ 1anguages. A~ter an extensive deve10pment phase, a~irst
compiler became operational in 197m, and pub1ication ~ollowed a
year 1ater (see Re~erences 1 and 8, p.1m4). The growing interest in
the deve10pment of compilers ~or other computers ca11ed ~or a
conso1idation o~ Pascal, and two years of experience in the use o~
the 1anguage dictated a few revisions. This 1ed in 1973 to the
pub1ication o~ a Revised Report and a de~inition o~ a 1anguage
representation in terms of the ISO cha:.:.acter set. This booklet
consists o~ two parts: The User Manual, and the Revised Report. The
ManUAl is directed to those who have previous1y acquired some
~ami1iarity with computer programming, and who wish to get
acquainted with the 1anguage Pascal. Hence, the style o~ the Manual
is that o~ a tutorial, and many examp1e~ are inc1uded to
demonstrate the various ~eatures o~ Pascal. Summarising tab1es and
syntax speci~ications are added as Appendices. The Report is
inc1uded in this booklet to serve as a concise, u1timate reference
~or both programmers and imp1ementors. It defines stAndArd Pascal
which constitutes a common base between various implementations of
the 1anguage.
Der modeme Digital-Computer wurde entwickelt, um komplizierte und
zeitraubende Berechnungen zu erleichtern und zu beschleunigen. Bei
den meisten Anwendungen spielt seine Fahigkeit, grosse Mengen von
Informationen zu speichern und wieder zuganglich zu machen, die
wichtigste Rolle (und wird als Haupteigenschaft betrachtet); seine
Fahigkeit zu rechnen, d.h. zu kalkulieren, Arithmetik auszufuhren,
ist in vielen Fallen nahezu belanglos. In allen diesen Fallen
stellt die grosse Menge an Information, die in irgendeiner Weise
verarbeitet werden muss, eine Abstraktion eines Teils der realen
Welt dar. Die der Rechenanlage zur Verfugung stehende Information
besteht aus einer ausgewahlten Menge von Daten uber die reale Welt,
namlich der fur das vorliegende Problem als wichtig erachteten
Menge, von der man annimmt, dass damit die gewunschten Resultate
erzielt werden koennen. Die Daten stellen eine Abstraktion der
Wirklichkeit dar, weil die fur dieses bestimmte Problem
nebensachlichen und belanglosen Eigenschaften und Besonderheiten
der realen Objekte unberucksichtigt bleiben. Eine Abstraktion ist
somit auch eine Vereinfachung der Tatsachen. Als Beispiel koennen
wir die Personalkartei eines Arbeitgebers betrachten. Jeder
Angestellte ist in dieser Kartei (abstrahiert) vertreten durch eine
Menge von Daten, die fur den Arbeitgeber, bzw. fur seine
Abrechnungen wichtig sind. Diese Daten enthalten einige Kennzeichen
des Arbeitnehmers, wie z.B. seinen Namen und sein Gehalt. Sehr
wahrscheinlich werden jedoch in diesem Zusammenhang unwichtige
Angaben, wie Haarfarbe, Gewicht und Groesse nicht vermerkt sein.
In den vergangenen Jahren wurde die Programmierung wm Rechenanlagen
als diejenige Disziplin erkannt, deren Beherrschung grundlegend und
entscheidend fur den Erfolg vieler Entwicklungsprojekte ist und die
wissenschaftlicher Behandlung und Darlegung zuganglich ist Vom
Handwerk stieg sie zur akademischen Disziplin auf. Die ersten
hervorragenden Beitrage zu dieser Entwicklung wurden von E. W.
Dijkstra und C. A. R. Hoare geliefert Dijkstra's Notes on
Struetured Programming 6J fuhrten zu einer neuen Betrachtung der
Programmierung als wissenschaftliches Thema und als intellektuelle
Herausforderung. Sie bahnten den Weg zu einer "Revolution" in der
Programmierung 35J. Hoare's An Axiommic Ba3is for Computer
Programming 10J zeigte deutlich, dass Progamme einer exakten
Analyse nach mathematischen Grundsatzen zuganglich sind. Beide
Artikel argumentieren uberzeugend, dass viele Programmierfehler
vermieden werden konnen, wenn man den Programmierern die Methoden
und Techniken, die sie bisher intuitiv und oft unbewusst
verwendeten, zur Kenntnis bringt Diese Artikel konzentrierten sich
auf die Aspekte des Aufbauens und Analysierens von Programmen oder,
genauer ausgedruckt, auf die Struktur der durch die Progammtexte
dargestellten Algorithmen. Es ist jedoch vollig klar, dass ein
systematisches und wissenschaftliches Angehen der Konstruktion von
Programmen seine grosste Wirkung im Fall grosser komplexer
Programme hat, die komplizierte Datenmengen bearbeiten. Folglich
muss eine Methodik des Programmierens auch alle Aspekte der
Datenstrukturierung behandeln. Programme sind letztlich konkrete
Formulierungen abstrakter Algorithmen, die sich auf bestimmte
Darstellungen und Datenstrukturen stutzen. Einen wesentlichen
Beitrag, Ordnung in die verwirrende Vielfalt der Terminologie und
Konzepte von Datenstrukturen zu bringen, leistete Hoare durch seine
Notes on Daltl Strueturing 13J."
Der moderne Digital-Computer wurde entwickelt, um komplizierte und
zeitraubende Berechnungen zu erleichtern und zu beschleunigen. Bei
den meisten Anwendungen spielt seine Fahigkeit, grosse Mengen von
Informationen zu speichern und wieder zuganglich zu machen, die
wichtigste Rolle (und wird als Haupteigenschaft betrachtet): seine
Fahigkeit zu rechnen, d.h. zu kalkulieren, Arithmetik auszufuhren,
ist in vielen Fallen nahezu belanglos. In allen diesen Fallen
stellt die grosse Menge an Information, die in irgendeiner Weise
verarbeitet werden muss, eine Abstraktion eines Teils der realen
Welt dar. Die der Rechenanlage zur Verfugung stehende Information
besteht aus einer ausgewahlten Menge von Daten uber die reale Welt,
namlich der fur das vorliegende Problem als wichtig erachteten
Menge, von der man annimmt, dass damit die gewunschten Resultate
erzielt werden konnen. Die Daten stellen eine Abstraktion der
Wirklichkeit dar, weil die fur dieses bestimmte Problem
nebensachlichen und belanglosen Eigenschaften und Besonderheiten
der realen Objekte unberucksichtigt bleiben. Eine Abstraktion ist
somit auch eine Vereirifachung der Tatsachen. Als Beispiel konnen
wir die Personalkartei eines Arbeitgebers betrachten. Jeder
Angestellte ist in dieser Kartei (abstrahiert) vertreten durch eine
Menge von Daten, die fur den Arbeitgeber, bzw. fur seine
Abrechnungen wichtig sind. Diese Daten enthalten einige Kennzeichen
des Arbeitnehmers, wie z.B. seinen Namen und sein Gehalt. Sehr
wahrscheinlich werden jedoch in diesem Zusammenhang unwichtige
Angaben, wie Haarfarbe, Gewicht und Grosse nicht vermerkt sein."
Contrary to what many believe, Alan Turing is not the father of the
all-purpose computer. Engineers were, independently of Turing,
already building such machines during World War II. Turing's
influence was felt more in programming after his death than in
computer building during his lifetime. The first person to receive
a Turing award was a programmer, not a computer builder. Logicians
and programmers recast Turing's notions of machine and
universality. Gradually, these recast notions helped programmers to
see the bigger picture of what they were accomplishing. Later,
problems unsolvable with a computer influenced experienced
programmers, including Edsger W. Dijkstra. Dijkstra's pioneering
work shows that both unsolvability and aesthetics have practical
relevance in software engineering. But to what extent did Dijkstra
and others depend on Turing's accomplishments? This book presents a
revealing synthesis for the modern software engineer and, by doing
so, deromanticizes Turing's role in the history of computing.
In den vergangenen Jahren wurde die Programmierung van
Rechentmlagen als diejenige Disziplin erkannt, deren Beherrschung
grundlegend und entscheidend rur den Erfolg vieler
Entwicklungsprojekte ist und die wissenschaftlieher Behandlung und
Darlegung zuganglieh isl Vom Handwerk stieg sie zur akademischen
Disziplin auf. Die ersten hervorragenden Beitrage zu dieser
Entwicklung wurden von E. W. Dijkstra und C. A. R. Hoare geliefert
Dijkstra's Notes on Structured Progranuning [6] ruhrten zu einer
neuen Betrachtung der Programmierung als wissenschaftliehes Thema
und als intellektuelle Herausforderung. Sie bahnten den Weg zu
einer "Revolution" in der Programmierung [35]. Hoare's An Axiomatic
Basis/or Computer Programming [10] zeigte deutlich, dass Progamme
einer exakten Analyse nach mathematischen Grundsatzen zuganglich
sind. Beide Artikel argumentieren uberzeugend, dass viele
Programmierfehler vermieden werden koennen, wenn man den
Programmierem die Methoden und Techniken, die sie bisher intuitiv
und oft unbewusst verwendeten, zur Kenntnis bringl Diese Artikel
konzentrierten sieh auf die Aspekte des Aufbauens und Analysierens
von Programmen oder, genauer ausgedruckt, auf die Struktur der
durch die Progammtexte dargestellten Algorithmen. & ist jedoch
voellig klar, dass ein systematisches und wissenschaftliehes
Angehen der Konstruktion von Programmen seine groesste Wirkung im
Fall grosser komplexer Programme hat, die komplizierte Datenmengen
bearbeiten. Folglich muss eine Methodik des Programmierens aueh
alle Aspekte der Datenstrukturierung behandeln. Prograrnme sind
letztlieh konkrete Formulierungen abstrakter Algorithmen, die sieh
auf bestimmte Darstellungen und Datenstrukturen stutzen. Einen
wesentliehen Beitrag, Ordnung in die verwirrende Vielfalt der
Terminologie und Konzepte von Datenstrukturen zu bringen, leistete
Hoare durch seine Noles on Datil Structuring [13].
Das Angebot an Lehrbtichern zum Programmieren in Computer-Sprachen
alier Arten ist enorm, und der erforderliche Aufwand, urn einen
entsprechenden Lehrgang zu ver- fassen, ist durchaus nicht
unbedeutend. Die Herausgabe dieses Studienbuches erfor- dert unter
diesen UmsHinden eine Begriindung - fast sogar eine Rechtfertigung.
Es geht mir hier vor aliem darum, das Prograrnmieren als eine
eigenstandige Disziplin, als das systematische Konstruieren und
Formulieren von Algorithrnen, einzuflihren. Algorithmen sind
Rezepte flir Klassen von Datenverarbeitungs-und Steuerungsprozes-
sen im allgemeinsten Sinn. Sie solien solide Gebaude von logisch,
zuverlassig und zweckmafl, ig konzipierten Bausteinen darstelIen.
Der Sinn des Programmierers fill exaktes und methodisches Vorgehen
solI vor allem geschiirft werden durch die Betonung von
Problemkreisen und Techniken, die fUr das Programmieren an und fUr
sich typisch sind, unabhangig vom Anwendungsgebiet, aus dem eine
bestimmte Programmieraufgabe gerade stammen mag. Aus diesem Grund
wird hier kein Anwendungsgebiet als Selbstzweck hervorgehoben; die
Aufgaben und Beispiele sind lediglich auf Grund ihrer Eignung zur
Veranschaulichung, rtlgemeingiil- tiger Probleme und
Losungsmethoden ausgewiihlt. Ebenfalls mehr in den Hintergrund
tretensolI die gewiihlte Programmiersprache; sie ist Werkzeug, aber
nicht Endzweck. Es solI nicht das vordringliche Anliegen eines
Programmierkurses sein, Perfektion in der Handhabung alIer Details
einer spezifischen Sprache zu vermitteln. Die Sprache oder Notation
solI hingegen die wesentlichen und typischen Bestandteile von Algo-
rithmen klar, verstandlich und auf nattirliche Weise widerspiegeln
und auf die grundl& genden Eigenschaften und Grenzen von
digitalen Rechenanlagen Rticksicht nehmen.
Dieses Buch ist eine EinfUhrung in die Theorie der formalen
Sprachen und ihrer Satzzerlegung, sowie in die Technik der
Compiler-Konstruktion. Diese Themen sind aus zweierlei Grunden
relevant. Erstens erleichtert und vertieft die Kenntnis der
Grundprinzipien eines Compilers das Verstiindnis fUr korrekte
Verwendung von Programmiersprachen ganz allgemein. Zweitens ist die
Beherrschung dieser Themen Voraussetzung fUr die fachgerechte
Erstellung vieler Computer-Systeme, denen eine einfache
Befehlssprache zugrunde liegt. Die Anzahl derartiger Anwendungen
nimmt rasch zu, sei es im Gebiet der Prozesssteuerung, der
Datenverarbeitung, oder der Betriebssysteme. Beziiglich der Theorie
der formalen Sprachen und der Methodik der syntaktischen Analyse
beschriinken wir uns auf das fUr den Bau eines einfachen Compilers
minimal notwendige. Hingegen wird die systematische Entwicklung
eines vollstiindigen Compilers fur eine einfache Programmiersprache
in ihren Einzelheiten dargelegt. Die Wahl der Quellsprache PLIO ist
ein Kompromiss zwischen einer Sprache, die allzu trivial ware, urn
als lehrreiches Beispiel zu gelten, und einer Sprache, deren
Miichtigkeit und Komplexitiit den wirklichen Kern und seine
Hauptprinzipien verschleiern wiirde. Fiir alle Programme wird die
Sprache Pascal verwendet. Sie erlaubt eine transparente Darstellung
komplexer Programme und Datenstrukturen, und sie eignet sich daher
fur diesen Themenkreis besonders gut.
Erleichtern Sie sich den Einstieg in das Thema Datenstrukturen und
Algorithmen mit Pascal.
Zahlreiche Abbildungen und Beispiele machen diesen Klassiker
besonders anschaulich.
|
You may like...
Loot
Nadine Gordimer
Paperback
(2)
R391
R362
Discovery Miles 3 620
|