Наука логіки у програмуванні

Наука логіки у програмуванні

Ця стаття присвячена порівняльному аналізу логічних сутностей із твору німецького філософа Георга Вільгельма Фрідріха Гегеля «Науки логіки» з їхніми аналогами чи їхньою відсутністю у програмуванні.

Сутності з «Науки логіки» виділені курсивом, щоб не було плутанини із загальноприйнятими визначеннями цих слів.

Чисте буття

Якщо Ви відкриєте визначення чисте буття у книзі, то побачите цікавий рядок «без подальшого визначення». Але для тих, хто не читав чи не зрозумів, не поспішайте звинувачувати автора в деменції. Чисте буття — це базове поняття в логіці Гегеля, що означає, що якийсь об'єкт є, прошу не плутати з існуванням об'єкта, об'єкт може не існувати в реальності, але якщо ми його визначили в нашій логіці він є. Якщо Ви замислитеся, то справді таке речі як чисте буття неможливо дати визначення, а будь-яка така спроба зведеться до того, що Ви просто посилатиметеся на його синоніми або антоніми. Чисте буття настільки абстрактне поняття, що може застосовуватися абсолютно до чого завгодно, включаючи саме себе. У деяких об'єктно-орієнтованих мовах є можливість представляти у вигляді об'єкта все, що завгодно, у тому числі операції над об'єктами, що в принципі дає нам такий рівень абстракції. Проте, у програмуванні прямого аналога чистого буття ні. Щоб перевірити існування об'єкта, нам потрібно перевірити його відсутність.

if(obj != null);

Дивно, що такого синтаксичного цукру ще немає, враховуючи, що дана перевірка є дуже популярною.

Ніщо

Як можна було здогадатися ніщо є відсутністю будь-чого. І його аналогом можна назвати NULL. Варто зазначити, що у науці логіці ніщо є чистим буттямтому що воно теж є. У цьому полягає деяка проблема, до NULL ми не можемо звернутися як до об'єкта в жодній мові, хоча насправді він теж ним є.

Становлення та моменти

становлення - це перехід від ніщо в буття і від буття в ніщо. Це дає нам два моменту, перший називається виникненням, а другий переходженням. Перехід названо так замість зникнення, тому що логічна сутність, по суті, не може зникнути, тільки якщо ми її не забули. Зняттям як таким можна назвати процедуру надання. Якщо у нас ініціалізується об'єкт відбувається момент виникнення, а у разі надання іншого значення або NULL момент перебування.

obj = new object(); //возникновение
obj = null; //прехождение

Готівкове буття

Якщо коротко готівкове буття — це об'єкт, який не має точного визначення, але має визначеність. Що це означає. Канонічний приклад є звичайний стілець. Якщо Ви спробуєте дати йому чітке визначення, то зіткнетеся з багатьма складнощами. Наприклад, Ви скажіть: "це предмет меблів призначений для сидіння", але крісло теж створене для цього і т.д. Але відсутність чіткого визначення не заважає нам виділяти його у просторі та використовувати при передачі інформації про нього, це тому, що в нашій голові є визначеність стільця. Можливо, дехто вже здогадався, що для виділення таких об'єктів із потоку даних було створено нейронні мережі. Нейронну мережу можна позначити як функцію, що визначає цю визначеність, але видів об'єктів які включали у собі чіткі і нечіткі визначення не існує, тому такими об'єктами не можна користуватися одному рівні абстракції.

Закон переходу кількісних змін до якісних

Цей закон був сформульований Фрідріхом Енгельсом внаслідок інтерпретації логіки Гегеля. Однак, його можна цілком побачити в першому томі на чолі про мірі. Суть його у тому, що кількісні зміни в об'єкті можуть вплинути на його якість. Наприклад, у нас є об'єкт лід, при накопиченні температури він перетвориться на рідку воду і змінить свої якості. Для реалізації такої поведінки об'єкт існує шаблон проектування «Стан». Виникнення такого рішення викликане відсутністю у програмуванні такої речі як заснування для виникнення об'єкт. підстава визначає умови, за яких об'єкт може виникнути, а в алгоритмі ми самі вирішуємо, в який момент нам потрібно проініціалізувати об'єкт.

PS: Якщо ця інформація буде цікавою, я проведу огляд інших сутностей з «Науки логіки».

Джерело: habr.com

Додати коментар або відгук