Виконавці часто зустрічаються в казках. В одній з них Іван-Царевич каже Хатинці-На-Курячих-ніжки: "Хатинка, хатинка! Встань до лісу задом, до мене передом! ". При цьому команда повинна бути задана дуже точно, щоб виконавець її зрозумів. У казці "Алі-Баба і сорок розбійників" чарівна двері відкривалися по команді "Сезам, відкрийся!". Жадібний Касим, таємно проник в печеру, забув цю фразу і не зміг вийти з печери.
І Хатинка-На-Курячих-ніжки, і чарівна двері мають багато спільного: вони вміють розуміти і виконувати деякі точно задані команди, тобто є виконавцями.
Хто такий виконавець?
Виконавець алгоритму - це жива істота або технічний об'єкт, здатний виконати дії, передбачені алгоритмом.
Виконавцями можуть бути:
- машини: верстати, роботи, побутові прилади (пральна машина, магнітофон, плеєр і т.п.), комп'ютери;
- рослини: соняшник (розгортається на сонці), латаття (закриваються на ніч);
- тварини: дресирована собака (санітар, розшукова, мисливський), кішка;
- люди: учень, робочий, солдатів, учитель.
Всі виконавці однакові?
Тварини і людина як виконавці відрізняються від всіх інших виконавців трьома основними ознаками:
- Вони розуміють команди в різних варіантах (наприклад "Сядь!", "Сідай!", "Сядь!").
- Вони можуть відмовитися виконувати команду, якщо вона їм не подобається ( "Їж манну кашу!", "Вистріли в вікно з рогатки!", "Віддай кістка!"). Тобто людина, і в певній мірі тварина, мають волею і відповідають за свої дії.
- Вони можуть в різний час одні і ті ж команди виконувати по-різному (наприклад, стать можна вимити руками, а можна за допомогою швабри).
Виконавці бувають двох видів!
Тепер давайте задумаємося над таким питанням: раз виконавці розрізняються деякими своїми ознаками, значить, не потрібно їх розділити на два класи? Тоді не важко здогадатися, що тварини і людина потраплять в один клас, а всі інші виконавці в інший. Залишилося визначити, як назвати ці класи і, визначити якими властивостями повинен володіти виконавець, щоб потрапити в ту чи іншу групу.
Формальні і неформальні
Для цього згадаємо одне з властивостей алгоритму, а саме формальність, воно означає що виконавець може не розуміти сенсу алгоритму, але все одно правильно його виконати ... Чи завжди так може вчинити людина або тварина? Напевно, немає, отже, не можна сказати, що вони виконують алгоритм формально, ось і будемо вважати, що людина і тварина - це неформальні виконавці.
Отже, виконуючи алгоритм, виконавець може не вникати в сенс того, що він робить і тим не менше отримувати потрібний результат. У такому випадки говорять, що виконавець діє формально, тобто відволікається від змісту поставленого завдання і тільки виконує суворій послідовності всі дії. Це формальний виконавець.
Якщо виконавець вносить якісь зміни в алгоритм (змінює послідовність кроків; пропускає якісь, вважаючи їх непотрібними або незначними), то говорять, що такий виконавець не формальний.
характеристики виконавця
Виконавець, як і будь-який об'єкт, має свої характеристики.
- СКІ (система команд виконавця) - набір команд, які виконавець розуміє і може виконати.
Кожен виконавець може виконувати команди тільки з деякого суворо заданого списку.
- Середовище - умови, в яких виконавець може виконувати команди. Середу виконавця можна назвати ще його «Місцем проживання».
- І відмови:
1. "Не розумію" - даної команди немає в списку команд виконавця, і він її не зрозумів. Ймовірно, ми помилилися в запису тексту команди команда не входить в СКІ.
2. "Не можу" - виконавець зрозумів команду, але не може її виконати. Наприклад, роботу дана команда "вперед", а попереду стоїть стінка і він не може йти. Або собаці скомандували "Сидіти!", А вона вже сидить.
Як виконавець зможе виконати алгоритм?
Виконавець зможе виконати алгоритм, якщо він йому відомий, якщо алгоритм йому повідомили. Для людей найважливішим способом спілкування є мова. Потрапляючи в чужу країну і не знаючи національної мови, людина виявляється абсолютно безпорадним. На виручку може прийти мову жестів, міміка, лист за допомогою малюнків (піктографічне письмо), але все це тільки частково покращує ситуацію.
Природна мова (російська, англійська, французька.) - основа основ повноцінного спілкування людей.
У природній мові абсолютно різні поняття можуть позначатися одним і тим же словом. Як правило, людина із загального змісту тексту, часом навіть не замислюючись, з усього безлічі значень слова виділяє саме те, яке мав на увазі відправник повідомлення. Але уявіть себе на місці формального виконавця, що не вникає в зміст усього повідомлення. Як в цьому випадку ви будете розуміти словосполучення: кисла міна; ранній втечу; їли всюди; знайоме середовище?
Щоб переконатися в тому, що мова формального виконавця не може бути багатозначним ми спробували за допомогою формального перекладача перекласти з англійської мови текст, що розповідає о. Спробуйте самі здогадатися, про що йде мова.
Дерев'яні угоди сьогодні - це вмирала - вирізка від соснових фанери, потім опустився в рідкі хімікати, які виробляють легко запалений, що погашається рада.
А йшлося про простої дерев'яної сірнику, але як було пояснити перекладачеві, що з усіх значень слова "match" треба було вибрати не "угода", а "сірник", з значень слова "tip" - "кінчик", а не "рада ", що" die "означає не тільки" померти ", але і" штампувати ", не кажучи вже про складнощі граматичних конструкцій?
Що таке програма?
Для формального виконавця мову спілкування не може бути багатозначним, для таких виконавців розробляють і використовують спеціальні штучні мови, де окремі слова і вирази не допускають різних тлумачень.
Алгоритм, описаний на мові виконавця, називається програмою.
Щоб навчитися писати програми на тому чи іншою мовою, потрібно вивчити алфавіт, словник і граматичні правила, за якими будуються пропозиції в цій мові, при цьому не допускаються ніякі відхилення від правил написання слів і пропозицій, інакше виконавець просто відмовиться виконувати ваші інструкції і не стане дивуватися і переживати за помилки, як це робить приятель Ведмедики з вірша А.Шібаева:
Прийшов пісьмішко мені,
дивлюся -
З табору від Мишки.
Тут чудовий лук і я лижу,
-Написано в пісьмішко.
Лук лиже? Що за чудеса?
Напевно, жартує шахрай.
Читаю далі:
Тут лисиця, красивий довгий прут.
Днями в лісі знайшов я смуток
і дуже був задоволений.
Ні, ні, не жартує він! боюся,
Мій друг серйозно хворий.
Повернеться - треба підлікувати:
Змусити правила вчити ...
- Виконавці бувають двох видів: формальні і не формальні.
- Виконавець характеризується системою команд, місцем існування і відмовами.
- Щоб виконавець зрозумів нас необхідно написати алгоритм на мові виконавця, тобто написати програму.
Запрошуємо всіх бажаючих взяти участь в обговоренні представлених нами висновків: