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

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

Дадзены артыкул прысвечаны параўнальнаму аналізу лагічных сутнасцяў з твора нямецкага філосафа Георга Вільгельма Фрыдрыха Гегеля "Навукі логікі" з іх аналагамі або іх адсутнасцю ў праграмаванні.

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

Чыстае быццё

Калі Вы адкрыеце азначэнне чыстае быццё у кнізе, то ўбачыце цікавы радок "без далейшага вызначэння". Але для тых, хто не чытаў ці не зразумеў, не спяшаецеся вінаваціць аўтара ў дэменцыі. Чыстае быццё - гэта базавае паняцце ў логіцы Гегеля якія азначаюць, што нейкі аб'ект ёсць, прашу не блытаць з існаваннем аб'екта, аб'ект можа не існаваць у рэальнасці, але калі мы яго неяк вызначылі ў нашай логіцы ён ёсць. Калі Вы задумаецеся, то сапраўды такое рэчы як чыстае быццё немагчыма даць азначэнне, а любая такая спроба звядзецца да таго, што Вы будзеце проста спасылацца на яго сінонімы ці антонімы. Чыстае быццё на столькі абстрактнае паняцце, што можа прымяняцца абсалютна да чаго заўгодна, у тым ліку само сябе. У некаторых аб'ектна-арыентаваных мовах ёсць магчымасць прадстаўляць у выглядзе аб'екта ўсё што заўгодна, у тым ліку аперацыі над аб'ектамі, што ў прынцыпе дае нам такі ўзровень абстракцыі. Аднак, у праграмаванні прамога аналага чыстага быцця не. Каб праверыць існаванне аб'екта, нам трэба праверыць яго адсутнасць.

if(obj != null);

Дзіўна, што такога сінтаксічнага цукру яшчэ няма, улічваючы, што дадзеная праверка з'яўляецца вельмі папулярнай.

нішто

Як можна было здагадацца нішто з'яўляецца адсутнасцю чаго б там ні было. І яго аналагам можна назваць NULL. Варта адзначыць, што ў навуцы логіцы нішто з'яўляецца чыстым быццём, таму што яно таксама ёсць. У гэтым складаецца некаторая загваздка, да NULL мы не можам звярнуцца як да аб'екта ні ў адной мове, хоць у сутнасці ён таксама ім з'яўляецца.

Станаўленне і моманты

станаўленне - гэта пераход ад нішто в быццё і ад быцця в нішто. Гэта дае нам два моманту, першы называецца узнікненнем, А другі пераходжаннем. Пераходжанне названа так замест знікнення, таму што лагічная сутнасць у сутнасці не можа знікнуць, толькі калі мы яе не забыліся. Зняццем як такім можна назваць працэдуру прысвойвання. У выпадку, калі ў нас ініцыялізуецца аб'ект адбываецца момант узнікнення, а ў выпадку прысвойвання іншага значэння ці NULL момант пераходжання.

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

Наяўнае быццё

Калі коратка наяўнае быццё - Гэта аб'ект не мае дакладнага вызначэння, але мае пэўнасць. Што гэта значыць. Кананічным прыкладам з'яўляецца звычайнае крэсла. Калі Вы паспрабуеце даць яму дакладнае азначэнне, то сутыкнецеся з мноствам складанасцяў. Напрыклад, Вы скажыце: "гэта прадмет мэблі прызначаны для сядзення", але крэсла таксама створана для гэтага і г.д. Але адсутнасць дакладнага вызначэння не перашкаджае нам выдзяляць яго ў прасторы і выкарыстоўваць пры перадачы інфармацыі пра яго, гэта таму што ў нашай галаве ёсць пэўнасць крэсла. Магчыма, некаторыя ўжо здагадаліся, што для вылучэння такіх аб'ектаў са струменя дадзеных былі створаны нейронавыя сеткі. Нейронную сетку можна пазначыць як функцыю вызначальную гэтую пэўнасць, Але відаў аб'ектаў якія б ўключалі ў сябе выразныя і невыразныя азначэнні не існуе, таму такімі аб'ектамі нельга карыстацца на адным узроўні абстракцыі.

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

Гэты закон быў сфармуляваны Фрыдрыхам Энгельсам у выніку інтэрпрэтацыі логікі Гегеля. Аднак, яго можна цалкам убачыць у першым томе ў главе аб меры. Сутнасць яго ў тым, што колькасныя змены ў аб'екце могуць паўплываць на яго якасць. Напрыклад, у нас ёсць аб'ект лёд, пры назапашванні тэмпературы ён ператворыцца ў вадкую ваду і зменіць свае якасці. Для рэалізацыі такіх паводзін у аб'екце існуе шаблон праектавання "Стан". Узнікненне такога рашэння выклікана адсутнасцю ў праграмаванні такой рэчы як падстава для ўзнікнення аб'екта. падстава вызначае ўмовы пры якіх аб'ект можа ўзнікнуць, а ў алгарытме мы самі вырашаем у які момант нам трэба праініцыялізаваць аб'ект.

PS: Калі дадзеная інфармацыя будзе цікавай я правяду агляд іншых сутнасцяў з "Навукі логікі".

Крыніца: habr.com

Дадаць каментар