SlideShare a Scribd company logo
1 of 11
МОВА ПРОГРАМУВАННЯ
C#
Курс лекцій
© programer.in.ua.
Лекція 1.
Історія виникнення
мови С#
Загальні відомості про мову C#
■ С# (читається Сі-шарп) – об’єктно-орієнтована
мова програмування
■ Розроблена в 1998-2001 роках в комапанії
Microsoft під керівництвом Андерса Хейлсберга
■ Призначення: основна мова для платформи
Microsoft .NET (дот-нет)
■ Компілятор C# входить в стандартний набір
платформи .NET (наслідок: програми на С#
можна компілювати без встановлення
додаткового ПО)
C++++
Назва мови
Базова мова
програмування
Перше
вдосконалення
Друге
вдосконалення
Нова мова: Сі-шарп
Андерс Хейлсберг
■ Інженер-програміст. Народ. в грудні 1960
року в м. Копенгаген (Данія). Закінчив
Технічний Університет Данії
■ В 1980 написав компілятор Pascal для
MS-DOS і продав фірмі Borland.
Компілятор склав основу версії Borland
Turbo Pascal (1995)
■ До 1996 року – інженер компанії Borland, де створив
Delphi
■ З 1996 року – інженер компанії Microsoft
■ Працюва над проектами: J++, Microsoft Foundation Classes
■ Згодом очолив групу по створенню мови C#
Платформа Microsoft .NET
■ .NET Framework – програмна технологія компанії
Microsoft, призначена для створення звичайних
програм та web-програм
■ Головна ідея: сумісність програм, написаних на
різних мовах програмування
■ В середовищі .NET створюється байт-код,
призначений для виконання віртуальною машиною
(CRL від Common Language Runtime)
■ Вхідна мова для віртуальної машини: MSIL, CIL
або IL – від Microsoft (Common) Intermediate
Language
Платформа Microsoft .NET
(продовження)
■ Виконанням .NET-коду керує система CLR: при
компіляції C#-програми отримуємо MSIL-код. Цей код
містить інструкції, які не залежать від типу процесора
■ Мета CLR-системи: перевести проміжний код в
код виконання (керований код – managed code)
■ Мета досягається за допомогою JIT-компілятора
(від Just In Time). Система CLR активує JIT-
компілятор
■ Керований код виконання: виконується під
управлінням CLR-системи (на відміну від
некерованого коду виконання)
ООП
Ієрархія основних мов ООП
С
С++
Java C#
Особливості мови C#
■ На відміну від Java, мова віртуальної машини MSIL
не прив’язана до певної мови програмування
(існують компілятори для С++, Visual Basic, C#)
■ Використовується простір імен (як в С++)
■ Є класи та інтерфейси (як в Java)
■ Делегати – аналог вказівників на функції в С++
■ Об’єкти класів реалізуються через посилання –
фактично, як в Java
■ Автоматичне “прибирання сміття” – як в Java
Особливості мови C#
(продовження)
■ Обробка виключень – як в Java
■ Властивість – де-юре поле, до якого звертаються
через методи set і get.
■ Індексатори – дозволяють звертатись до об’єктів
так само, як до масивів
■ Обмежене використання вказівників – як в С++
■ Обмежене переозначення операцій – як в С++
■ “Особливі” багатовимірні масиви
Лекція А. Хейлсберга
“Майбутнє мови C#”
► Переглянути

More Related Content

What's hot

Sql injection with sqlmap
Sql injection with sqlmapSql injection with sqlmap
Sql injection with sqlmapHerman Duarte
 
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...Anne Nicolas
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to MavenJoao Pereira
 
Apache web server
Apache web serverApache web server
Apache web serverzrstoppe
 
Docker cheat-sheet
Docker cheat-sheetDocker cheat-sheet
Docker cheat-sheetPeđa Delić
 
Ansible tips & tricks
Ansible tips & tricksAnsible tips & tricks
Ansible tips & tricksbcoca
 
RIA Cross Domain Policy
RIA Cross Domain PolicyRIA Cross Domain Policy
RIA Cross Domain PolicyNSConclave
 
Distributed load testing with k6
Distributed load testing with k6Distributed load testing with k6
Distributed load testing with k6Thijs Feryn
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX, Inc.
 
MySQL Operator for Kubernetes
MySQL Operator for KubernetesMySQL Operator for Kubernetes
MySQL Operator for KubernetesKenny Gryp
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlowAiste Stikliute
 
4.6 create and change hard and symbolic links v2
4.6 create and change hard and symbolic links v24.6 create and change hard and symbolic links v2
4.6 create and change hard and symbolic links v2Acácio Oliveira
 
Trusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSSTrusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSSKrzysztof Kotowicz
 
Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014
Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014
Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014Anant Shrivastava
 

What's hot (20)

Sql injection with sqlmap
Sql injection with sqlmapSql injection with sqlmap
Sql injection with sqlmap
 
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...Embedded Recipes 2018 -  swupdate: update your embedded device - Charles-Anto...
Embedded Recipes 2018 - swupdate: update your embedded device - Charles-Anto...
 
An introduction to Maven
An introduction to MavenAn introduction to Maven
An introduction to Maven
 
Apache web server
Apache web serverApache web server
Apache web server
 
Introduction to Makefile
Introduction to MakefileIntroduction to Makefile
Introduction to Makefile
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 
Docker cheat-sheet
Docker cheat-sheetDocker cheat-sheet
Docker cheat-sheet
 
Ansible tips & tricks
Ansible tips & tricksAnsible tips & tricks
Ansible tips & tricks
 
RIA Cross Domain Policy
RIA Cross Domain PolicyRIA Cross Domain Policy
RIA Cross Domain Policy
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 
Distributed load testing with k6
Distributed load testing with k6Distributed load testing with k6
Distributed load testing with k6
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
MySQL Operator for Kubernetes
MySQL Operator for KubernetesMySQL Operator for Kubernetes
MySQL Operator for Kubernetes
 
Low Level View of Android System Architecture
Low Level View of Android System ArchitectureLow Level View of Android System Architecture
Low Level View of Android System Architecture
 
REST API testing with SpecFlow
REST API testing with SpecFlowREST API testing with SpecFlow
REST API testing with SpecFlow
 
LLVM
LLVMLLVM
LLVM
 
4.6 create and change hard and symbolic links v2
4.6 create and change hard and symbolic links v24.6 create and change hard and symbolic links v2
4.6 create and change hard and symbolic links v2
 
Trusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSSTrusted Types and the end of DOM XSS
Trusted Types and the end of DOM XSS
 
Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014
Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014
Owasp Mobile Risk M2 : Insecure Data Storage : null/OWASP/G4H Bangalore Aug 2014
 

Similar to C#- Лекція 1

.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
Мови програмування
Мови програмуванняМови програмування
Мови програмуванняAlyona Tribko
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
Prezent vchytelya
Prezent vchytelyaPrezent vchytelya
Prezent vchytelyachepesyuk
 
програміст (1)
програміст (1)програміст (1)
програміст (1)123467890qq
 
Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Dmitry Chabanenko
 
мови програмування дроженець, лисица 11 б (2)
мови програмування дроженець, лисица 11 б (2)мови програмування дроженець, лисица 11 б (2)
мови програмування дроженець, лисица 11 б (2)raprap1
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CMaksym Davydov
 
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)Igor igorvolinec
 
Основи програмування
Основи програмуванняОснови програмування
Основи програмуванняHelenSm007
 
Programne zabezpechenna
Programne zabezpechennaProgramne zabezpechenna
Programne zabezpechenna1cana1
 
Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)Denys Kurets
 
основи програмування 1
основи програмування  1основи програмування  1
основи програмування 1CDN_IF
 
3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретч3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретчСокальська ЗШ І-ІІІ ступенів №2
 
мови програмування 8
мови програмування 8мови програмування 8
мови програмування 8Юра Гасіч
 
Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."Lviv Startup Club
 
Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Oksana Kutsenko
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 

Similar to C#- Лекція 1 (20)

.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
розробка-програм
розробка-програмрозробка-програм
розробка-програм
 
Мови програмування
Мови програмуванняМови програмування
Мови програмування
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Prezent vchytelya
Prezent vchytelyaPrezent vchytelya
Prezent vchytelya
 
програміст (1)
програміст (1)програміст (1)
програміст (1)
 
Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1Основи алгоритмізації та програмування. Лекція 1
Основи алгоритмізації та програмування. Лекція 1
 
мови програмування дроженець, лисица 11 б (2)
мови програмування дроженець, лисица 11 б (2)мови програмування дроженець, лисица 11 б (2)
мови програмування дроженець, лисица 11 б (2)
 
Lecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-CLecture 06. iOS Programming. Основи Objective-C
Lecture 06. iOS Programming. Основи Objective-C
 
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
 
Основи програмування
Основи програмуванняОснови програмування
Основи програмування
 
Programne zabezpechenna
Programne zabezpechennaProgramne zabezpechenna
Programne zabezpechenna
 
Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)
 
основи програмування 1
основи програмування  1основи програмування  1
основи програмування 1
 
C++
C++C++
C++
 
3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретч3 клас урок 27 як працювати в середовищі програмування скретч
3 клас урок 27 як працювати в середовищі програмування скретч
 
мови програмування 8
мови програмування 8мови програмування 8
мови програмування 8
 
Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."Andrii Novak "Unity vs UE4 for Indie programmers."
Andrii Novak "Unity vs UE4 for Indie programmers."
 
Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Programne zabezpechenna(pz)
Programne zabezpechenna(pz)
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 

Recently uploaded

Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxvitalina6709
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 

Recently uploaded (6)

Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
 
Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptx
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 

C#- Лекція 1

  • 3. Загальні відомості про мову C# ■ С# (читається Сі-шарп) – об’єктно-орієнтована мова програмування ■ Розроблена в 1998-2001 роках в комапанії Microsoft під керівництвом Андерса Хейлсберга ■ Призначення: основна мова для платформи Microsoft .NET (дот-нет) ■ Компілятор C# входить в стандартний набір платформи .NET (наслідок: програми на С# можна компілювати без встановлення додаткового ПО)
  • 5. Андерс Хейлсберг ■ Інженер-програміст. Народ. в грудні 1960 року в м. Копенгаген (Данія). Закінчив Технічний Університет Данії ■ В 1980 написав компілятор Pascal для MS-DOS і продав фірмі Borland. Компілятор склав основу версії Borland Turbo Pascal (1995) ■ До 1996 року – інженер компанії Borland, де створив Delphi ■ З 1996 року – інженер компанії Microsoft ■ Працюва над проектами: J++, Microsoft Foundation Classes ■ Згодом очолив групу по створенню мови C#
  • 6. Платформа Microsoft .NET ■ .NET Framework – програмна технологія компанії Microsoft, призначена для створення звичайних програм та web-програм ■ Головна ідея: сумісність програм, написаних на різних мовах програмування ■ В середовищі .NET створюється байт-код, призначений для виконання віртуальною машиною (CRL від Common Language Runtime) ■ Вхідна мова для віртуальної машини: MSIL, CIL або IL – від Microsoft (Common) Intermediate Language
  • 7. Платформа Microsoft .NET (продовження) ■ Виконанням .NET-коду керує система CLR: при компіляції C#-програми отримуємо MSIL-код. Цей код містить інструкції, які не залежать від типу процесора ■ Мета CLR-системи: перевести проміжний код в код виконання (керований код – managed code) ■ Мета досягається за допомогою JIT-компілятора (від Just In Time). Система CLR активує JIT- компілятор ■ Керований код виконання: виконується під управлінням CLR-системи (на відміну від некерованого коду виконання)
  • 9. Особливості мови C# ■ На відміну від Java, мова віртуальної машини MSIL не прив’язана до певної мови програмування (існують компілятори для С++, Visual Basic, C#) ■ Використовується простір імен (як в С++) ■ Є класи та інтерфейси (як в Java) ■ Делегати – аналог вказівників на функції в С++ ■ Об’єкти класів реалізуються через посилання – фактично, як в Java ■ Автоматичне “прибирання сміття” – як в Java
  • 10. Особливості мови C# (продовження) ■ Обробка виключень – як в Java ■ Властивість – де-юре поле, до якого звертаються через методи set і get. ■ Індексатори – дозволяють звертатись до об’єктів так само, як до масивів ■ Обмежене використання вказівників – як в С++ ■ Обмежене переозначення операцій – як в С++ ■ “Особливі” багатовимірні масиви
  • 11. Лекція А. Хейлсберга “Майбутнє мови C#” ► Переглянути