o introducere ușor neobișnuită în domeniul arhitecturii software

duminică, 29 iul. 2012, 16:24

Arhitectura, sau mai general proiectarea chestiilor este un subdomeniu al ingineriei ca oricare altul, care se ocupă, am putea spune lipsiți de rigoare, cu descrierea chestiilor în cauză. Bunăoară, dacă doresc, inginer fiind, să proiectez un ciocan spre a rezolva o problemă dată (de obicei bătutul cuielor), va trebui – dat fiind că-s om, iară nu orice om, ci inginer – să îmi formulez un set de cerințe și întrebări adiacente acesteia, legate printre altele de: părțile componente ale ciocanului, felul în care arată acestea, din ce sunt formate și cum se îmbină ele spre a forma mai mult decât suma părților lor.

Fundamentele acestei paradigme sunt aceleași în cazul sistemelor software, motiv pentru care și există în prezent acest domeniu oarecum bizar al ingineriei programelor pe calculator [i]. Diavolul se regăsește bineînțeles în detalii, acolo unde teoreticienii încearcă să prezică evoluția software-ului în timp. Dacă în cazul unui ciocan lucrurile stau destul de simplu – dai cu el până se strică -, software-ul evoluează destul de haotic în timp, degradându-se și pierzându-și din fiabilitate în moduri greu de prevăzut. Colac peste pupăză, inginerii noștri plini de creativitate gândesc modele și implementări care de care mai complexe, când rolul abstractizării e tocmai opusul, anume acela de a simplifica lucrurile. Deci aici zic că ar ajuta un pic să luăm lucrurile de la zero, deci să regândim problema. (mai mult…)

  1. Da, dragi cititori, ingineria software e un ceva anume extrem de bizar prin felul ei de a fi. Aceasta ba apare în, ba dispare din mintea inginerului programator, existând și în același timp încetând să existe pentru acesta la un moment dat. Fenomenul se datorează nu numai faptului că lumea ideilor e volatilă în cadrul unui singur individ, ci și aceluia că oameni diferiți pot privi o singură problemă în moduri complet disjuncte, ajungând astfel să petreacă o perioadă considerabilă de timp stabilindu-și un limbaj comun. Astfel au apărut hack-uri imense dezvoltate de oameni cu interese profund diferite, cum e nucleul Linux, și astfel au luat viață inclusiv unele produse ale consumului de LSD, cum e Unix. []

cu cofunctori și matrice inversabile

duminică, 19 feb. 2012, 15:37

Articolul despre atom ne-a lăsat în pom cu o particularitate destul de neplăcută (și care dă spre inconsistență) a sistemului prezentat: toate reprezentările abstracte din cadrul acestuia sunt cu precădere duale, deci binare [i], pe când abordarea categorială e una ternară. Cu alte cuvinte, categoria ca construcție naturală a matematicii e formată din obiecte (notate de obicei \text{Ob}\;\mathcal{C}), săgeți între obiecte (notate de obicei \text{Hom}_{\mathcal{C}}(A,B)) și o operație \circ de compunere a săgeților care respectă două axiome [ii].

Definiția o generalizează pe cea a monoidului, care-i în fapt și la urma urmei o categorie cu un singur obiect care-i de fapt o mulțime M, ale cărei elemente sunt săgeți în categoria dată, iar compunerea e operația binară de compunere a monoidului. Definiția generală a monoidului dă de fapt un triplet format dintr-un obiect și două morfisme, într-un mod analog cu monadele, dar astea nu-s legate de discuția noastră. (mai mult…)

  1. Și iată cum am comis și erezia de a folosi numere în cadrul unor teorii care fac abstracție de acestea la un nivel fundamental. []
  2. Mai exact asociativitatea operației și existența unui element neutru []

despre atom

duminică, 12 feb. 2012, 14:42

Cu toate că mecanismul abstractizării se poate dovedi a fi o durere în proverbialul posterior în cazul unor construcții complexe cum este cea a limbajului, conceptualizarea [i] este în general o unealtă deosebit de puternică de descriere a universurilor, fie ele reale sau închipuite.

Acest fapt implică posibila folosire a unor mijloace de reprezentare mai la îndemâna gânditorului de rând decât formalismele seci prezente în fizică. Abordarea are bineînțeles avantaje și dezavantaje, un avantaj fiind acela că nu limitează definiția atomului la cea fizică, definiție care oricum se bate cap în cap cu cea inițială [ii], deoarece atomii descriși în tabelul lui Mendeleev pot fi scindați prin fisiune nucleară în particule așa-zis subatomice, termenul de „subatomic” fiind în sine un fel de oximoron. Dezavantajul principal e acela că am putea risca să intrăm în contradicție cu metodele științei, dat fiind faptul că uneltele pure ale gândirii (logica și matematica) pot să ducă foarte ușor la contradicții între lumea abstractă și cea reală, deoarece de la Gödel știm că nu există sisteme de reprezentare complete. Îmi e greu să cred că vom ajunge acolo, însă. (mai mult…)

  1. Apropo, conceptul asociat unui obiect dat poate fi descris foarte elegant în termeni categoriali. Astfel, un functor fixat ar putea fi văzut drept operator de conceptualizare. Poate nu-i întâmplător faptul că termenul de „functor” a apărut prima dată într-o carte de lingvistică. []
  2. Grecescul „atomos” referă prin definiție la „indivizibil” sau „care nu poate fi tăiat”. []