Skip to main content

Programmierung

  • Living reference work entry
  • First Online:
HÜTTE – Das Ingenieurwissen

Zusammenfassung

Programmieren im Sinne der Informatik heißt, ein Lösungsverfahren für eine Aufgabe so zu formulieren, dass es von einem Computer ausgeführt werden kann. Der Programmierer muss dazu verschiedene Lösungsverfahren (Algorithmen) und Datenstrukturen kennen, mit denen sich die Lösung am günstigsten beschreiben lässt, und er muss eine Programmiersprache beherrschen. Notwendige Algorithmen arbeiten mit Daten, die in verschiedener Form vorliegen können (z. B. als Zahlen, Zeichen, Listen, Tabellen). Einfache Daten können zu komplexeren Datenstrukturen gruppiert werden. Die Wahl der für eine Problemlösung am besten geeigneten Datenstrukturen ist ebenso wichtig wie die Wahl der am besten geeigneten Algorithmen. Beide hängen also eng zusammen und müssen auch so betrachtet werden.

Darauf aufbauend gestatten Programmiersprachen die Beschreibung von Algorithmen und Datenstrukturen in einer so präzisen Weise, dass die Algorithmen von einer Maschine ausgeführt werden können. Sie sind damit das wichtigste Verbindungsglied zwischen Mensch und Maschine. Bei niederen Programmiersprachen bestehen die Programme aus den Befehlen einer bestimmten Maschine. Die hier behandelten höheren oder „problemorientierten“ Programmiersprachen bestehen aus maschinenunabhängigen Anweisungen und müssen vor der Ausführung von einem Übersetzer (Compiler) in die Maschinensprache übersetzt werden. Je größer die Programme werden, umso mehr spielen zusätzlich Methoden der Projektplanung, Projektorganisation, Qualitätssicherung und Dokumentation eine Rolle, die man unter dem Begriff Softwaretechnik zusammenfasst.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Literatur

  • ACM Sigplan Notices 27 (1992) 5 (Das ganze Heft ist der Sprache Haskell gewidmet, mit Sprachdefinition)

    Google Scholar 

  • Backus JW et al (1963) Revised report on the algorithmic language ALGOL 60. Numer Mathematik 4:420–453

    Article  MathSciNet  MATH  Google Scholar 

  • Bae S (2019) Big-O notation. In: Bae S (Hrsg) JavaScript data structures and algorithms: an introduction to understanding and implementing core data structure and algorithm fundamentals. Apress, Berkeley, S 1–11

    Chapter  Google Scholar 

  • Beck K (2000) Extreme programming explained. Addison-Wesley, Boston

    Google Scholar 

  • Beck K (2004) JUnit pocket guide. O’Reilly, Sebastopol

    Google Scholar 

  • Berg M de, Cheong O, van Kreveld M, Overmars M (2008) Computational geometry: algorithms and applications, 3. Aufl. Springer, New York

    Google Scholar 

  • Blaschek G (2011) Die Algorithmenbeschreibungssprache Jana. http://ssw.jku.at/Teaching/Lectures/Algo/Jana.pdf

  • Blaschek G, Pomberger G, Ritzinger F (1990) Einführung in die Programmierung mit Modula-2. Springer, Berlin

    MATH  Google Scholar 

  • Boehm B (1988) A spiral model of software development and enhancement. IEEE Comput 21(5):61–72

    Article  Google Scholar 

  • Böszörményi L, Weich C (1995) Programmieren mit Modula-3. Springer, Berlin

    Book  MATH  Google Scholar 

  • Bratko I (2000) Prolog programming for artificial intelligence, 3. Aufl. Addison-Wesley, Boston

    Google Scholar 

  • Buchberger B (1985) Editorial. J Symbol Comput 1:1–6

    MathSciNet  Google Scholar 

  • Buchberger B (2006) Symbolisches Rechnen. In: Rechenberg P, Pomberger G (Hrsg) Informatik-Handbuch, 4. Aufl. Hanser, München

    Google Scholar 

  • Burkhart H (2006) Parallele Programmierung. In: Rechenberg P, Pomberger G (Hrsg) Informatik-Handbuch, 4. Aufl. Hanser, München

    Google Scholar 

  • Clocksin WF, Mellish CS (2003) Programming in prolog, 5. Aufl. Springer, Berlin

    Book  MATH  Google Scholar 

  • Dijkstra EW (1968) Go to statement considered harmful. Commun ACM 11:147–148

    Article  MathSciNet  Google Scholar 

  • Foley JD et al (1993) Introduction to computer graphics. Addison-Wesley, Reading

    Google Scholar 

  • Gibson RG, Bergin TJ (1996) History of programming languages II. Addison-Wesley, Boston

    Google Scholar 

  • Gilb T, Graham D (1993) Software inspection. Addison-Wesley, Boston

    Google Scholar 

  • Goldberg A, Robson D (1995) Smalltalk-80. Addison-Wesley, Reading

    MATH  Google Scholar 

  • Gosling J et al (2005) The Java language specification, 3. Aufl. Addison-Wesley, Reading

    MATH  Google Scholar 

  • Gries D (1989) The science of programming. Springer, Berlin

    Google Scholar 

  • Harrison J (2009) Handbook of practical logic and automated reasoning. Cambridge University Press, Cambridge

    Google Scholar 

  • Hejlsberg A, Torgersen M, Wiltamuth S, Golde P (2010) The C# programming language, 4. Aufl. Addison-Wesley Professional, Boston

    Google Scholar 

  • Henrici P (1973) Elemente der numerischen Analysis, Bde. 2 (1972). Bibliogr. Inst., Mannheim

    Google Scholar 

  • Herrtwich RG, Hommel G (1994) Nebenläufige Programme, 2. Aufl. Springer, Berlin

    Book  MATH  Google Scholar 

  • Hinze R (1992) Einführung in die funktionale Programmierung mit Miranda. Teubner, Stuttgart

    MATH  Google Scholar 

  • Huber TC (2010) Silverlight 4: Das umfassende Handbuch. Galileo Computing, Bonn

    Google Scholar 

  • Jensen K, Wirth N (1991) Pascal user manual and report (revised for the ISO Pascal standard), 4. Aufl. Springer, New York

    Book  MATH  Google Scholar 

  • Kappel G, Hitz M, Retschitzegger W, Kapsammer E (2005) UML@work. dpunkt, Heidelberg

    Google Scholar 

  • Kernighan BW, Ritchie DM (1990) Programmieren in C, 2. Aufl. Hanser, München

    MATH  Google Scholar 

  • Knuth DE (1997a) The art of computer programming, Bd 1: Fundamental algorithms, 3. Aufl. Addison-Wesley, Boston

    Google Scholar 

  • Knuth DE (1997b) The art of computer programming, Bd 2: Seminumerical algorithms, 3. Aufl. Addison-Wesley, Boston

    Google Scholar 

  • Koch S (2011) JavaScript: Einführung, Programmierung und Referenz, 6. Aufl. dpunktverlag, Heidelberg

    Google Scholar 

  • Koepf W et al (1993) Mathematik mit DERIVE. Vieweg, Braunschweig

    Book  MATH  Google Scholar 

  • Lerdorf R, Bergmann S, Hicking G (2006) PHP kurz und gut, 3. Aufl. O’Reilly, Sebastopol

    Google Scholar 

  • Manna Z (1993) Mathematical theory of computation. Dover Publications, Mineola

    Google Scholar 

  • McCabe T (1976) A complexity measure. IEEE Trans Softw Eng SE-2:308–320

    Article  MathSciNet  MATH  Google Scholar 

  • Melzer I (2010) Service-orientierte Architekturen mit Web Services, 4. Aufl. Spektrum Akademischer Verlag, Heidelberg

    Google Scholar 

  • Metcalf M, Reid J, Cohen M (2004) Fortran 95/2003 explained. Oxford University Press, Oxford

    Google Scholar 

  • Mössenböck H (1998) Objektorientierte Programmierung in Oberon-2, 3. Aufl. Springer, Berlin

    Book  MATH  Google Scholar 

  • Mössenböck H (2009) Kompaktkurs C# 4.0, 3. Aufl. dpunkt, Heidelberg

    Google Scholar 

  • Mössenböck H (2011) Sprechen Sie Java? 4. Aufl. dpunkt, Heidelberg

    Google Scholar 

  • Myers GJ, Sandler C, Badgett T, Thomas TM (2004) The art of software testing, 2. Aufl. Wiley, Hoboken

    Google Scholar 

  • O’sullivan B, Goerzen J, Stewart D (2008) Real world Haskell. O’Reilly, Sebastopol

    Google Scholar 

  • Parnas DL (1972) On the criteria to be used in decomposing systems into modules. Commun ACM 15:1053–1058

    Article  Google Scholar 

  • Perrot RH, Zarea-Aliabadi A (1986) Supercomputer languages. Comput Surv 18:5–22

    Article  Google Scholar 

  • Pomberger G, Bischofberger W (1992) Prototyping-oriented software development. Springer, Berlin

    MATH  Google Scholar 

  • Pomberger G, Pree W (2004) Software Engineering. In: Architektur-Design und Prozessorientierung, 3. Aufl. Hanser, München

    Chapter  Google Scholar 

  • Proakis JG, Manolakis DK (2006) Digital signal processing, 4. Aufl. Prentice Hall, London

    Google Scholar 

  • Reiser M, Wirth N (1997) Programmieren in Oberon. Korr. Nachdr. Addison-Wesley/Longman, Bonn

    MATH  Google Scholar 

  • Schwaber K, Beedle M (2002) Agile software development with scrum. Prentice Hall, London

    Google Scholar 

  • Schwichtenberg H (2011) Microsoft ASP.NET 4.0 mit Visual C# 2010. Microsoft Press, London

    Google Scholar 

  • Sedgewick R, Wayne K (2011) Algorithms, 4. Aufl. Addison-Wesley Professional, Boston

    Google Scholar 

  • Shirley P, Ashikhmin M, Marschner S (2009) Fundamentals of computer graphics, 3. Aufl. A K Peters, Natick

    Google Scholar 

  • Shneiderman B, Plaisant C, Cohen M, Jacobs S (2009) Designing the user interface, 5. Aufl. Addison-Wesley, Boston

    Google Scholar 

  • Spillner A, Linz T (2005) Basiswissen Softwaretest, 3. Aufl. dpunkt, Heidelberg

    Google Scholar 

  • Steele GL (1990) Common LISP, 2. Aufl. Digital Pr, Bedford

    MATH  Google Scholar 

  • Stetter HJ (1990) Numerik für Informatiker. Oldenbourg, München

    MATH  Google Scholar 

  • Stoyan H, Görz G (1986) LISP. 1. korr. Nachdruck. Springer, Berlin

    Google Scholar 

  • Stroustrup B (2000) The C++ programming language, 3. Aufl. Addison-Wesley Professional, Amsterdam

    MATH  Google Scholar 

  • Überhuber C (1995) Computer-Numerik (2 Bde.). Springer, Berlin

    Book  MATH  Google Scholar 

  • Wexelblat RL (Hrsg) (1981) History of programming languages. Academic, New York

    MATH  Google Scholar 

  • Wirth N (1971) Program development by stepwise refinement. Commun ACM 14:221–227

    Article  MATH  Google Scholar 

  • Wirth N (1974) On the composition of well-structured programs. Comput Surv 6:247–259

    Article  MATH  Google Scholar 

  • Wirth N (1991) Programmieren in Modula-2, 2. Aufl. Springer, Berlin

    Book  MATH  Google Scholar 

  • Wißmann D (2009) JavaServer Pages: Dynamische Websites mit JSP erstellen, 2. Aufl. W3L GmbH, Dortmund

    Google Scholar 

  • Wolfram S (1999) The mathematica book, 4. Aufl. Cambridge University Press, Cambridge

    Google Scholar 

Allgemeine Literatur

Weiterführende Literatur

  • Bühler P, Schlaich P, Sinner D (2018) Webtechnologien: JavaScript – PHP – Datenbank. Springer Vieweg, Wiesbaden

    Google Scholar 

  • Freeman A (2020) Pro Angular 9: build powerful and dynamic web apps. Apress, New York

    Google Scholar 

  • Kleuker S (2016) Grundkurs Datenbankentwicklung: Von der Anforderungsanalyse zur komplexen Datenbankanfrage. Springer Vieweg, Wiesbaden

    Google Scholar 

  • Mardan A (2018) Practical Node.js: building real-world scalable web apps. Apress, New York

    Google Scholar 

  • Northwood C (2018) The full stack developer: your essential guide to the everyday skills expected of a modern full stack web developer. Apress, New York

    Google Scholar 

  • Panhale M (2016) Beginning hybrid mobile application development. Apress, New York

    Google Scholar 

  • Randhawa T (2021) Mobile applications: design, development and optimization. Springer International Publishing, Cham

    Google Scholar 

  • Simons M (2018) Spring Boot 2: Moderne Softwareentwicklung mit Spring 5. dpunktverlag, Heidelberg

    Google Scholar 

  • Steyer R (2019) Webanwendungen erstellen mit Vue.js: MVVM-Muster für konventionelle und Single-Page-Webseiten. Springer Vieweg, Wiesbaden

    Google Scholar 

  • Subramanian V (2019) Pro MERN stack: full stack web app development with Mongo, Express, React, and Node. Apress, New York

    Google Scholar 

  • Wieruch R (2020) The road to react: your journey to master plain yet pragmatic React.js. Self-published, Berlin

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Max-Marcel Theilig .

Editor information

Editors and Affiliations

Section Editor information

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature

About this entry

Check for updates. Verify currency and authenticity via CrossMark

Cite this entry

Theilig, MM., Rechenberg, P., Mössenböck, H. (2021). Programmierung. In: Hennecke, M., Skrotzki, B. (eds) HÜTTE – Das Ingenieurwissen. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-57492-8_68-1

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-57492-8_68-1

  • Received:

  • Accepted:

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-57492-8

  • Online ISBN: 978-3-662-57492-8

  • eBook Packages: Springer Referenz Technik und Informatik

Publish with us

Policies and ethics