http://lem12.uksw.edu.pl/index.php?title=Specjalna:Nowe_strony&feed=atom&hidebots=1&limit=50&offset=&namespace=0&username=&tagfilter=Lem - Nowe strony [pl]2024-03-29T14:33:33ZZ LemMediaWiki 1.23.8http://lem12.uksw.edu.pl/wiki/%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0_%D1%81%D1%82%D0%BE%D1%80%D1%96%D0%BD%D0%BA%D0%B0Головна сторінка2024-03-03T17:52:41Z<p>AnastasiiaSadlovska: /* Питання */</p>
<hr />
<div><p style="text-align: left;">[[Plik:22px-English_language.svg.png]]<br />
[[Main page]] &nbsp;&nbsp;&nbsp; [[Plik:Flag of Poland.svg.png]][[ Strona główna]] </p><br />
<br />
<br />
Лотар [[Коллатц]] (<small> у 1937 році</small>) мав рацію !<br />
<br />
-------<br />
<br />
== Карта ==<br />
На цих сторінках ми представляємо чотири дослідницькі проєкти: Алгоритмічна логіка(з 1968), Loglan'82(з 1978), SpecVer(2007), Lem(2012).<br />
Перші два проєкти дали багато результатів і будуть використовуватися ще багато років.<br /><br />
<br />
<br />
{| class="wikitable"<br />
|- <br />
|♥ Дослідницький проєкт '''"Алгоритмічна логіка"''' займається відкриттям законів [[рахунок програм |рахунку програм]] і знаходить застосування у верифікації програм, тобто у доведенні істинності таких властивостей програм, як [[коректність]], відсутність циклів тощо. Мова алгоритмічної логіки дозволяє не лише виражати властивості алгоритмів (програм), а й забезпечує аксіоматизацію багатьох структур даних. Це стосується як відомих і необхідних в алгоритміці структур даних (наприклад, стеки, бінарні дерева пошуку, купи і т. д.), так і багатьох структур, що вивчаються в математиці. Можна вважати, що математика займається дослідженням, чи є дана формула <math> \alpha </math> істинною у даній структурі <math> \mathbb{A} </math>. Однак більшість структур не можна описати за допомогою аксіом, записаних у логіці першого порядку! Прийняття мови алгоритмічної логіки (або коротше, алгоритмічної мови) дозволяє представити ...<br /><br />
→ '''[[Алгоритмічна логіка]]''' <br /><br />
→ '''[[Media:UlotkaLogikaAlgorytmiczna.pdf| Листівка з алгоритмічної логіки]]'''<br />
<br />
|width="50% " | ♥ Дослідницький проєкт '''"Loglan'82"''' сприяв створенню однойменної об'єктно-орієнтованої та розподіленої мови програмування. Публікація мови та розповсюдження компілятора передували дослідженням різних проблем. <br />
Наведемо кілька прикладів:<br /><br />
<br />
• Вирішення проблеми безпечного та ефективного вивільнення надлишкових об'єктів. <br /> <br />
• Вирішення проблеми (статичної) семантики, яка виникає, коли модулі класів можуть бути вкладеними (внутрішні класи) та розширеними (успадкування).<br /> <br />
• Оригінальний протокол взаємодії об'єктів процесів, які програміст може виділити в комп'ютерній мережі (alien call protocol).<br /> <br />
Мова Loglan була створена багато років до мов програмування C++ (1986) та Java (1995). Ці дві (та інші) мови програмування не узяли на озброєння рішень, відомих у Loglan протягом понад 30 років. Ознайомлення з Loglan може повністю змінити вашу думку про інженерію програмного забезпечення. Використовуючи знання та навички, які пропонує Loglan, ви можете значно підвищити свою кваліфікацію. <br /><br />
→ '''[[Lоglan'82]]'''<br /><br />
→ '''[[Media:UlotkaLoglan.pdf|Листівка Loglan'82]]'''<br /><br />
<br />
|-<br />
|♥ ''LEM'' - це назва нового дослідницького проєкту.<br />
Метою цього проєкту є вивчення можливості створення мови програмування з певними визначеними характеристиками (див. [[специфікація LEM]]).<br />
Мова LEM має ґрунтуватися на досягненнях проекту Loglan'82 та використовувати найкращі аспекти об'єктно-орієнтованих мов програмування новіших поколінь: Java, C++, C#, Python і т.д.<br /><br />
→ '''[[LЕM]]'''<br />
|♥ Проєкт ''SpecVer'' має на меті підтвердити корисність застосування законів алгоритмічної логіки в інженерії програмного забезпечення. Мова LEM може виявитися корисною в роботі проєкту SpеcVer.<br /><br />
→ '''[[SpеcVer]]'''<br />
|}<br />
<br />
{| class="wikitable"<br />
|- <br />
|♥ Бібліотека класів і математичних знань, корисних для програмістів. <br /><br />
Візія майбутнього (ще один проєкт на роки роботи для багатьох людей).<br />
<br />
Давайте почнемо з кількох питань: Чи можна вмістити математичні знання в комп'ютері? Чи можна вмістити інформатичні знання в комп'ютері? Дональд Кнут 70-х роках XX століття мав таку амбіцію, розпочинаючи створення своєї книги ''Мистецтво програмування''. Сьогодні, через майже 50 років, комп'ютерні знання зросли і здається неможливим, що їх можна вмістити в комп'ютері. Але, по-перше, комп'ютери тепер значно більші і швидші, ніж колись, а по-друге, існує комп'ютерна мережа (Здійснилася візія С. Лема з 50-х років). Це дозволяє нам перейти до створення ескізу концепції. <br /><br />
Необхідно було б : <br />
# Створити сховище знань, якими користуються розробники програмного забезпечення. Тут будуть знаходитися бібліотеки класів і методів, а також знання про структури даних, в яких проводяться обчислення. Це стосується як структур реляційних (алгебраїчних), що розглядаються математиками, так і структур даних, визначених і використовуваних інженерами програмного забезпечення.<br />
# Створити мову, якою розробники програмного забезпечення будуть писати свої аргументи для (друкованих, розповсюджуваних, ...) повідомлень. Така мова повинна бути зрозумілою для людей і достатньо формалізованою, щоб була можливість комп'ютерного аналізу передставлених доказів.<br />
# Інструмент для перевірки достовірності доказів. Буде потрібна програма proof checker, який суттєво відрізнятиметься від Mizara та йому подібних, оскільки докази будуть записані в рахунку програм (тобто в системі AL), який багатший за рахунок предикатів.<br />
# Придумати спосіб збирання та поширення знань. Чи це має бути щось на кшталт математично-алгоритмічної пошукової системи Google?<br />
|}<br />
<br />
== Питання ==<br />
Про функціональне програмування і тому подібне.<br />
# Не розумію: мене переконують перейти на функціональне програмування. Що я від цього отримаю? Кажуть, у функціональному програмуванні відсутні побічні ефекти та операції присвоєння. І що з того? Чи існують інструменти для вираження властивостей, таких як: <br /> a) Обчислення буде закінчене, <br /> b) Набір визначень не містить протиріч, <br /> c) Результати будуть правильними, i т.д.<br />
# У 1943 році Стівен Коул Кліні довів, що будь-яку рекурсивну функцію в розумінні Гьоделя-Гербранда можна виразити оператором мінімуму ефективного <math>\mu</math>. Чи це не означає, що в області натуральних (цілих) чисел функціональне програмування та програмування за допомогою операцій while i ін. визначають один і той самий набір обчислюваних функцій?<br />
# Чи можна у функціональному програмуванні описати синтаксис такого класу програм, що обчислення будуть закінчені? Для ітераційного програмування (тобто структурного) такий критерій існує.<br />
# Я прочитав такий вислів: ''Якби який-небуть тиран заборонив використання процедур та функцій, тоді вся інформатика зазнала б краху. Вони настільки важливі, що важко уявити програмування без використання процедур та функцій.'' Як це стосується теореми Кліні? тези Черча-Тюрінга?<br />
# Вартість? Розглянемо послідовність Фібоначчі. Яка найкраща вартість обчислення n-го виразу цієї послідовності? <br />
Щодо керування пам'яттю (збір сміття, висячі референції).<br />
# Чи варто довільно вирішувати про відкидання інструкції, яка видаляє об'єкт?</div>AnastasiiaSadlovska