2017-02-04 01 Евгений Тюменцев. Выразительные возможности...

Post on 20-Mar-2017

30 Views

Category:

Education

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Выразительные возможности языков программирования

Евгений Тюменцев директор HWdTech

Алфавит

Алфавит – произвольное непустое конечное множество символов.

A = { _ | =1,2, …, }.

Слово в алфавите

Словом в алфавите A называется конечная цепочка записанных подряд символов этогоалфавита

Подслово

Говорят, что слово α входит в слово β (α является подсловом слова β), если найдутся такие слова γ и δ, что β = γαδ.

Формальный язык

Множество всех слов в алфавите A обозначается через ∗ (пустое слово принадлежит ∗).

Формальным языком (или просто языком) в алфавите A называется какое угодно подмножество множества ∗.

Примеры слов в С++void f() {}

class A{public: void DoSomething();};

Абстракция

Пусть L – формальный язык, обозначим через ̌ множество всех подслов языка L. Тогда F: X → ̌ называется абстрагированием, где X – произвольное множество, а образ F(x) - абстракцией x.

Производительность труда программистов

Критерий линейной производительности

Грубо: процесс разработки программы на языке L обладает линейной скоростью, тогда и только тогда, когда трудоемкость написания каждого слова этой программы ограничена некоторой константой C.

Количество слов/количество операций над словами

Производная и скорость

Искусственный интеллект

Возможно ли создать искусственный интеллект?

1980 Michael O'Donnell “A Critique of the Foundations of Hoare-Style Programming Logics”

2001 А. Н. Ващенко, Е. Е. Витяев, Н. Г. Загоруйко, А. А. Мальцев, Н. Н. Непейвода, Д. Е. Пальчунов, С. Г. Пыркин, А. В. Ткачев, Рефлексирующие программные системы

Линейная производительность и абстракция

Изменения в предметной области

Геом. смысл импликацииПусть P1 → P, B = { x | P1(x) = 1},A = { x | P (x) = 1}.Тогда B ⊂ A.

P ⊨ P1. Говорят, что P – более слабое условие, P1 – более сильное.

Есть выход - аксиома вывода

P1 → P, {P} S {Q}, Q → Q1 ╞ {P1} S {Q1}

P1 → P, {P} S {Q} ╞ {P1} S {Q}{P} S {Q}, Q → Q1 ╞ {P} S {Q1}

Не полиморфный код - циклы

Не полиморфный код - условные операторы

Вывод условного оператора

Пусть L = {{P} f {Q}, }, B – предикат.

P^B→P (A3 ИВ){P^B}f{Q} (аксиома вывода){P}if (B) then f endif {Q} (аксиома условного оператора)

Почему держимся за условия и циклы

Система аксиом, содержащая if и while полна.

То есть можно выразить любую задачу, в принципе реализуемую на машинах Тьюринга.

if и while - это абстракции для ...

Формул с квантором всеобщности

Пример

Покупатели

Пример

Покупатели

с наличными

Пример

Покупатели

с наличными

с платежными картами

Пари

Вопросы

Наша группа: vk.com/hwdtech

Наш сайт: hwdtech.ru

top related