Logikens vetenskap inom programmering

Logikens vetenskap inom programmering

Denna artikel handlar om en jÀmförande analys av logiska enheter frÄn det tyska filosofen Georg Wilhelm Friedrich Hegels verk "Logikens vetenskap" samt deras motsvarigheter eller avsaknad i programmering.

Enheterna frÄn "Logikens vetenskap" Àr markerade med kursiv för att undvika förvirring med de allmÀnt vedertagna definitionerna av dessa ord.

Rent varande

Om du öppnar definitionen rent varande i boken, sĂ„ ser du en intressant fras "utan vidare definition". Men för dem som inte har lĂ€st eller förstĂ„tt, skynda dig inte att anklaga författaren för demens. Rent varande — detta Ă€r ett grundlĂ€ggande begrepp i Hegels logik som betyder att ett objekt finns, var god och blanda inte ihop det med objektets existens; objektet kan faktiskt inte existera i verkligheten, men om vi pĂ„ nĂ„got sĂ€tt har definierat det i vĂ„r logik, sĂ„ finns det. Om du funderar pĂ„ det, sĂ„ Ă€r det verkligen sĂ„dana saker som rent varande omöjligt att definiera, och varje försök att göra det kommer att leda till att du bara hĂ€nvisar till dess synonymer eller antonymer. Rent varande ett sĂ„ pass abstrakt begrepp att det kan tillĂ€mpas pĂ„ vad som helst, inklusive sig sjĂ€lv. I vissa objektorienterade sprĂ„k finns möjlighet att representera allt som ett objekt, Ă€ven operationer pĂ„ objekt, vilket i princip ger oss en sĂ„dan nivĂ„ av abstraktion. Men i programmering finns det ingen direkt motsvarighet till rent varande För att kontrollera existensen av ett objekt behöver vi kontrollera dess frĂ„nvaro.

if(obj != null);

Det Àr mÀrkligt att sÄdan syntaktisk socker fortfarande inte finns, med tanke pÄ att denna kontroll Àr ganska populÀr.

Ingenting

Som man kunde gissa ingenting Àr frÄnvaron av vad som helst. Dess motsvarighet kan kallas NULL. Det Àr vÀrt att nÀmna att inom logiken ingenting denna funktion ett omslag runt modulen Crypt::UnixCrypt och utgör ingen fara, men i det levererade arkivet pÄ Sourceforge anropas kod som direkt refererar till \/etc\/shadow, men gör det genom en shell-konstruktion. För att genomföra attacken rÀcker det med att ange tecknet "|" i fÀltet för det gamla lösenordet och koden efter detta kommer att köras med root-behörighet pÄ servern. rent varande, eftersom det ocksÄ finns. HÀr ligger en viss knut, vi kan inte referera till NULL som ett objekt i nÄgot sprÄk, Àven om det i grunden ocksÄ Àr ett sÄdant.

Bliande och ögonblick

Bliande Ă€r övergĂ„ngen frĂ„n ingenting pĂ„ varande och frĂ„n till varande. pĂ„ ingentingDetta ger oss tvĂ„ ögonblick, det första kallas uppkomsten, och det andra övergivandet. Övergivande Ă€r sĂ„ kallat istĂ€llet för försvinnande, eftersom den logiska enheten i grunden inte kan försvinna, endast om vi har glömt den. Avskaffande hur man kan benĂ€mna tilldelningsproceduren. Om vi initialiserar ett objekt sker ögonblicket för uppkomsten, och vid tilldelning av ett annat vĂ€rde eller NULL ögonblicket för övergĂ„ngen.

obj = new object(); //uppkomst
obj = null; //övergÄng

Existens

Kortfattat existens – det Ă€r ett objekt utan en tydlig definition, men med bestĂ€mdhet. Vad betyder det? Ett klassiskt exempel Ă€r en vanlig stol. Om du försöker ge den en tydlig definition, kommer du att stöta pĂ„ mĂ„nga svĂ„righeter. Till exempel kan du sĂ€ga: "det Ă€r en möbel avsedd för sittande", men en fĂ„tölj Ă€r ocksĂ„ skapad för detta, etc. Men bristen pĂ„ en tydlig definition hindrar oss inte frĂ„n att sĂ€rskilja den i rummet och anvĂ€nda den för att överföra information om den, eftersom vi har bestĂ€mdhet stolen. Kanske har vissa redan listat ut att neurala nĂ€tverk skapades för att sĂ€rskilja sĂ„dana objekt frĂ„n datastreamen. Ett neuralt nĂ€tverk kan definieras som en funktion som bestĂ€mmer detta bestĂ€mdhet, men det finns inga typer av objekt som skulle omfatta bĂ„de tydliga och otydliga definitioner, sĂ„ sĂ„dana objekt kan inte anvĂ€ndas pĂ„ samma abstraktionsnivĂ„.

Lagen om övergÄng av kvantitativa förÀndringar till kvalitativa

Denna lag formulerades av Friedrich Engels som en tolkning av Hegels logik. Men man kan se den tydligt i första volymen i kapitlet om mÄtt. KÀrnan i det Àr att kvantitativa förÀndringar i objektet kan pÄverka dess kvalitet. Till exempel har vi objektet is, nÀr temperaturen ökar kommer det att förvandlas till flytande vatten och Àndra sina kvaliteter. För att implementera ett sÄdant beteende i objektet finns det designmönstret "TillstÄnd". Uppkomsten av en sÄdan lösning orsakades av bristen pÄ nÄgot liknande i programmering, nÀmligen grunden för för uppkomsten av objektet. Grunden definierar villkoren under vilka ett objekt kan uppstÄ, och i algoritmen bestÀmmer vi sjÀlva nÀr vi behöver initialisera objektet.

PS: Om denna information Àr av intresse kommer jag att göra en översikt över andra entiteter frÄn "Logikens vetenskap".

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster