POKROČILÉ C++ Marian Vittek

Similar documents
VYLEPŠOVANIE KONCEPTU TRIEDY

C++ Programming for Programmers

C++ Programming for Programmers using Microsoft Visual C Professional

Spring 2018 NENG 202 Introduction to Computer Programming

CSI33 Data Structures

Introduction to Scientific Programming in C++

Structure of this course. C and C++ Past Exam Questions. Text books

September 10,

(heavily based on last year s notes (Andrew Moore) with thanks to Alastair R. Beresford. 1. Types Variables Expressions & Statements 2/23

COMP322 - Introduction to C++ Lecture 01 - Introduction

Programming in C and C++

ITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University

Introduction. Instructor: Jia Xu CSCI-135

INTRODUCTION TO THE COURSE

Tvorba informačných systémov. 4. prednáška: Návrh IS

Databázy (1) Prednáška 11. Alexander Šimko

The C Programming Language

Chapter 1: An Overview of Computers and Programming Languages. Objectives. Objectives (cont d.) Introduction

Introduction to Programming

C LANGUAGE AND ITS DIFFERENT TYPES OF FUNCTIONS

Checking C Declarations at Link Time 1 2

Chapter 1 Introduction to Computers and C++ Programming

Chapter 1: Introduction

Java and C/C++ Language Features in Terms of Network Programming

Riešenia a technológie pre jednotnú správu používateľov

Evaluation of C++ Compilers for the Cray T3E

EL2310 Scientific Programming

Lecture 1: Preliminaries

Dr. Md. Humayun Kabir CSE Department, BUET

Programming in C and C++

CS201 - Introduction to Programming FAQs By

Xerox PARC the office of the future. Michal Winczer

CS120 Computer Science I. Instructor: Jia Song

Programming in C/C

LECTURE/ STUDY NOTES ON C

TDDD38 - Advanced programming in C++

C PROGRAMMING THE C PROGRAMMING THE PDF C PROGRAMMING TUTORIAL IN PDF - CURRENT AFFAIRS 2018 C (PROGRAMMING LANGUAGE) - WIKIPEDIA

Unit 1: Introduction to Programming. Saurabh Khatri Lecturer Department of Computer Technology VIT, Pune

The C Programming Language

Crash Course into. Prof. Dr. Renato Pajarola

COSC 2P95. Introduction. Week 1. Brock University. Brock University (Week 1) Introduction 1 / 18

THE C PROGRAMMING LANGUAGE BY KERNIGHAN AND RITCHIE PDF

IS 0020 Program Design and Software Tools

0 Introduction: Computer systems and program development

Object Oriented Programming. Solved MCQs - Part 2

Programming Language Basics

CS 113: Introduction to

2.1 Why did C need a ++?

Why do we have to know all that? The stored program concept (the procedural paradigm) Memory

by Pearson Education, Inc. All Rights Reserved.

edunepal_info

Type safe Linkage for Variables and Functions

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Outline. 1 About the course

MA400: Financial Mathematics

DOWNLOAD OR READ : PROGRAMMING IN C AND INTRODUCTION TO DATA STRUCTURES AS PER VTU SYLLABUS PDF EBOOK EPUB MOBI

Programovanie v jazyku Python. Michal Kvasnica

Programming, numerics and optimization

Introduction to OOP Using Java Pearson Education, Inc. All rights reserved.

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

CSCE 110 PROGRAMMING FUNDAMENTALS

The component base of C language. Nguyễn Dũng Faculty of IT Hue College of Science

Copyright 2016 by Martin Krug. All rights reserved.

Nové komunikačné trendy v dátových centrách

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

EL2310 Scientific Programming

Object-Oriented Programming CSCI-UA

Fundamentals of Programming (C)

Object-Oriented Programming Fall Robert Grimm, New York University

Objects, Encapsulation, Inheritance (2)

OOPs: The Harsh Realities of Programming

C++ Programming: Introduction to C++ and OOP (Object Oriented Programming)

C++ Spring Break Packet 11 The Java Programming Language

CHOICE BASED CREDIT SYSTEM (With effect from )

Programming With C By Jeyapoovan Sdocuments2

C++ For C Programmers Week 1 Part 1

Faculty of Mathematics and Physics Charles University in Prague. Master Thesis. Rudolf Thomas. A Parser of the C++ Programming Language

Introduction to C++ IT 1033: Fundamentals of Programming

Software Project. Lecturers: Ran Caneti, Gideon Dror Teaching assistants: Nathan Manor, Ben Riva

CSCI 2132 Software Development. Lecture 2: Introduction to UNIX and Unix-like Operating Systems

CS 50 Introduction to Computer Science I

programming 6 c programming pdf C (programming language) - Wikipedia free-programming-books/free-programming-books.md at master

Why C++ Sails When the Vasa Sank

ANSI C. Data Analysis in Geophysics Demián D. Gómez November 2013

CSC 533: Organization of Programming Languages. Spring 2007

BITG 1113: Introduction To Computers And Programming Language LECTURE 1 LECTURE 1 1

The results for a few specific cases below are indicated. allequal ([1,1,1,1]) should return true allequal ([1,1,2,1]) should return false

Overview of C++: Part 1

Unit 1 : Principles of object oriented programming

Spôsoby zistenia ID KEP

History C++ Design Goals. How successful? Significant constraints. Overview of C++

Spájanie tabuliek. Jaroslav Porubän, Miroslav Biňas, Milan Nosáľ (c)

Strings and Streams. Professor Hugh C. Lauer CS-2303, System Programming Concepts

Introduction to C++ Professor Hugh C. Lauer CS-2303, System Programming Concepts

6.096 Introduction to C++ January (IAP) 2009

Databázové systémy. SQL Window functions

Microsoft Azure platforma pre Cloud Computing. Juraj Šitina, Microsoft Slovakia

Programming. Languages & Frameworks. Hans-Petter Halvorsen, M.Sc. O. Widder. (2013). geek&poke. Available:

Partha Sarathi Mandal

Programming Fundamentals (CS 302 ) Dr. Ihsan Ullah. Lecturer Department of Computer Science & IT University of Balochistan

Transcription:

POKROČILÉ C++ Marian Vittek vittek@fmph.uniba.sk

O predmete Pôvodne seminár Teraz normálna prednáška so skúškou/testom Predmetom kurzu je detailnejší pohľad na jazyk C++ a občasné porovnanie s inými programovacími jazykmi. Evolúcia C++ z jazyka C nutnosť poznať jazyk C

Čo nebudeme robiť Ţiadne konkrétne prostredie (MSVC, Eclipse, ) Ţiaden konkrétny projekt. Ţiadne grafické kniţnice.

Čo budeme robiť Programovací jazyk z pohľadu autora jazyka Jednotlivé črty programovacieho jazyka C++ Motivácie Moţnosti voľby Porovnanie s inými jazykmi

Evolúcia programovacích jazykov

SourceForge programovacie jazyky

Materiál Brian Kernighan, Dennis Ritchie: The C Programming Language Bjarne Stroustrup: The design and evolution of C++ ANSI standard C++

C a C++ sú dva rôzne jazyky C++ vychádza z C Pretoţe C bol zjavne najpopulárnejší jazyk v tom čase. Pretoţe pochádzal z Bell Labs.

Stručná chronológia jazyka C 1969-1973 : Dennis Ritchie implementoval prvú verziu jazyka C ako prostriedku pre implementáciu nového operačného systému Unix. 1978 : Vyšla kniha: Brian Kernighan and Dennis Ritchie "The C Programming Language." 1983 : Zaloţenie ANSI skupiny pre C 1989 : ANSI C definované. Tieţ známe ako C89. 1999 : C99 2011 : C11

Dennis Ritchie Dennis Ritchie (na obr. vpravo) je povaţovaný za autora jazyka C. Pochádzal a ţil v USA 1941 2011. Vyštudoval Harvard, pracoval v Bell Labs, projekty ako BCPL, C, Unix.

C++ Vzniklo ako vylepšenie jazyka C. Definoval ho (aspoň v jeho začiatkoch) Bjarne Stroustrup. Referenčná implementácia jazyka (implementovaná samotným Stroustrupom) sa volá Cfront. Je to kompilátor z C++ do C. Neskôr z iniciatívy veľkých softvérových firiem ako HP a IBM vznikol ANSI (American National Standards Institute) výbor a potom ANSI/ISO (International Organization for Standardization). Napríklad, jazyky ako Java a C#, nemajú medzinárodný štandard. ANSI výbor má okolo 250 členov, z toho moţno 70 aktívnych.

Bjarne Stroustrup Bjarne Stroustrup je povaţovaný za autora jazyka C++, pochádza z Dánska, PhD získal na U. Cambridge UK, potom sa presťahoval do USA, pracoval v Bell Labs, teraz učí na univerzite v Texase

Stručná chronológia C++ 1979 Začiatok práce na C with classes (C + triedy, prísne typovanie). 1983 Premenované na C++ 1985 Cfront 1.0: virtuálne funkcie, preťaţovanie operátorov 1987 prvá USENIX C++ konferencia: GNU C++ kompilátor. 1989 Cfront 2.0: Multiple inheritance. 1990 prvý ANSI meeting: Templates, exceptions accepted 1991 Cfront 3.0: templates, exceptions implementované 1993 RTTI, Namespaces accepted 1998 ANSI/ISO standard C++ 98: STL 2011 C++11: boost

Potrebujeme stále nové programovacie jazyky? Nie sú náhodou všetky programovacie jazyky rovnaké? Všetky umoţňujú definovať a vypočítať rekurzívne funkcie. Všetky majú akýsi algoritmický formalizmus (funkcie, procedúry, predikáty, metódy, agentov,...) a nejaký formalizmus pre dáta (celé čísla, reálne čísla, smerníky, polia, štruktúry, triedy, zoznamy) pričom toto všetko je len syntaktický cukor pre čísla. Čo znamená lepší / horší jazyk? Sú staršie programovacie jazyky horšie? Prečo vznikajú nové jazyky? Sú súčasné programovacie jazyky tie najlepšie moţné? Existuje ideálny univerzálny programovací jazyk?

Načo je programovací jazyk? Spôsob ako ovládať stroj (Lepší strojový kód). Jazyk, ktorým komunikuje programátor s inými programátormi a (v čase) aj sám so sebou. Nástroj na konštrukciu kniţníc a znovu pouţitie existujúcich riešení. Nástroj na údrţbu a modifikovanie softvéru. Matematický formalizmus popisujúci riešenie? Myšlienkový smer, ktorý rozdeľuje ľudí? Hračka pre programátorov a nadšencov?

(Veľmi) zjednodušený ţivot softvéru Vývoj Údrţba Modifikácie Vyradenie a prípadná recyklácia častí

Plán kurzov Vybrané časti z jazyka C Stroustrup, OOP a vznik C++ Správa pamäti (memory management) Preťaţovanie (overloading) Viacnásobné dedenie (multiple inheritance) Vylepšovanie tried (class concept refinement) Zmeny typov (casting) Šablóny (Templates) Spracovanie výnimiek (Exception handling) Menné priestory (namespaces) Preprocessor kniţnica STL kniţnica boost