close

Вход

Забыли?

вход по аккаунту

?

Theme

код для вставкиСкачать
Языки программирования
Дмитрий Сошников
dmitryso@microsoft.com
Как устроен компьютер?
Память
Жесткий диск
Программа
Центральный процессор
Данные
История языков программирования:
начало
0000
0008
0010
1954-57 г., Дж.Бэкус
• FORTRAN
0A 12 1F 4B C3 E0 EE F1
C3 1D 23 17 F2 00 0C 0D
…
ARG1:
ARG2:
RES:
NEXT:
MOV
ADD
MOV
JMP
DB
DB
DB
…
10
S = 0
DO 10 I=1,10
S = S + I*I
CONTINUE
• язык ассемблера
• машинные коды
AX, [ARG1]
AX, [ARG2]
[RES], AX
NEXT
10
20
0
• программирование переключателей
1950
•
1960
1970
1980
1990
2000
2010
Первый язык программирования высокого уровня – ФОРТРАН – был создан
Дж.Бэкусом, чтобы математики могли программировать на уровне формул.
Императивные (алгоритмические)
языки программирования
• Программы состоят из операторов
• Операторы «что-то делают»: изменяют
состояние памяти
• Состояние памяти определяется переменными
float a = 1, b = 2, c = -5;
var d = b * b - 4 * a * c;
var x1 = (-b + Math.Sqrt(d)) / 2 / a;
var x2 = (-b - Math.Sqrt(d)) / 2 / a;
Console.WriteLine(x1);
Console.WriteLine(x2);
Императивные языки
программирования
♦ LISP
• FORTRAN
○ С++
○ Python
○ C#
○ Java
• С, Pascal
• язык ассемблера
• машинные коды
• программирование переключателей
1950
1960
1970
1980
1990
2000
2010
Объектно-ориентированные языки
• Необходимо как-то структурировать код
• Мир состоит из объектов и классов
объектов, со своими свойствами
• Более «конкретные» объекты наследуют
свойства более абстрактных
• Ключевые свойства:
– Инкапсуляция
– Наследование
– Полиморфизм (абстракция)
Основной язык – C#
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
float a = 1, b = 2, c = -5;
var d = b * b - 4 * a * c;
var x1 = (-b + Math.Sqrt(d)) / 2 / a;
var x2 = (-b - Math.Sqrt(d)) / 2 / a;
Console.WriteLine(x1);
Console.WriteLine(x2);
Console.ReadKey();
}
}
}
Функциональные языки
• Иногда удобно представлять себе процесс обработки
данных как применение некоторой функции к этим
данным
• В этом случае нет понятия памяти – данные подаются на
вход функциям и получаются на выходе
• Возможность передавать функции другим функциям как
данные даёт богатые возможности по комбинированию
функций для достижения нужного результата
let solve a b c =
let d = b*b-4.0*a*c
(-b+sqrt(d))/2./a, (-b-sqrt(d))/2./a
solve 1.0 2.0 -5.0
Эволюция языков
программирования
♥ Mercury
♥ Prolog
♦ Miranda ♦ Haskell
♦ LISP
• FORTRAN
♦ F#
♦ OCaml
♦ ML ○ С++
♦ FP
• С, Pascal
○ Python
○ C#
○ Java
• язык ассемблера
• машинные коды
• программирование переключателей
1950
1960
1970
1980
1990
2000
2010
Платформа .NET
C#
Visual
Basic .NET
Managed
C++
F#
Платформа Microsoft .NET
Исполнитель byte-code
Библиотека
Операционная система
Аппаратура компьютера (процессор, память, …)
…
Когда нужны разные языки?
Задача
Язык программирования
Встраиваемые системы, системы
реального времени
С, С++
Операционные системы
С, С++
Корпоративные системы
C# (+SQL)
Веб-сайты, порталы
C# (+HTML)
Обработка данных, компиляторы
F#, C#
Игры (для Windows, XBox)
C#, C++
Приложения для телефона (XNA)
C#
Богатые приложения для Интернет (RIA, C# (+XAML)
Silverlight)
Другие компьютерные языки
•
•
•
•
Разметка текста (HTML, XAML, CSS, …)
Представление данных (XML)
Запросы к данным (SQL)
…
Разметка текста - HTML
<html>
<body>
<h1>Привет!</h1>
<p>Это <b>пример</b>
разметки в HTML</p>
</body>
</html>
Представление данных - XML
<?xml version\="1.0"?>
<person name="Dmitry" surname="Soshnikov">
<twitter>@shwars</twitter>
<publications>
<publication type="podcast"
title="Programming Languages" />
</publications>
</person>
XQuery:
//publications
//publications/publication[@type=“podcast”]
Запросы к данным - SQL
People
Publications
ID
Name
ID
Person_ID
Title
1
Dmitri Soshnikov
1
1
Programming Languages
2
Peter Pen
2
1
Programming in C#
SELECT People.Name, Publications.Title
FROM People, Publications
WHERE People.ID = Publications.Person_ID
SELECT People.PName,
(SELECT COUNT(*) FROM Publications
WHERE Publications.Person_ID=People.ID) AS Count
FROM People
<end>Thank.You!</end>
Дмитрий Сошников
• dmitryso@microsoft.com,
dmitri@soshnikov.com
• http://www.soshnikov.com
• http://blogs.msdn.com/sos
• http://twitter.com/shwars
Документ
Категория
Презентации по информатике
Просмотров
5
Размер файла
189 Кб
Теги
1/--страниц
Пожаловаться на содержимое документа