Wpis z mikrobloga

Definicje:
Programista to człowiek mający umiejętność zapisywania informacji (na przykład: algorytmu służącego do rozwiązania problemu) w postaci kodu (definiowanego przez język programowania).

Język programowania to sposób zapisu kodu źródłowego (programu) rozumianego przez programistę.

Kod źródłowy to forma programu zapisana w języku programowania możliwa do zrozumienia przez programistę, podatna na zmiany i przeznaczona do kompilacji na docelowy system komputerowy. Programów nie piszę się na każdy system komputerowy bezpośrednio bo wymagałoby to zmian w kodzie zależnie od platformy docelowej (a to wymagałoby, aby wziąć pod uwagę i dostosować program do architektury, czyli budowy i sposobu działania, każdej platformy osobno) więc, aby umożliwić ich działanie (programów) na różnych platformach (bez potrzeby ingerencji w kod źródłowy programu i tworzenia różnych jego odmian) pisze się je (programy) w kodzie języka wysokiego poziomu, którego (ten kod) jest „tłumaczony” podczas procesu kompilacji na kod maszynowy „rozumiany” przez docelowy system komputerowy i dostarczany w formie pliku binarnego.

Kompilacja to proces zmiany (przez dedykowany program, tak zwany kompilator [danego języka] lub programistę) kodu źródłowego (dowolnego) programu w kod maszynowy, czyli formę akceptowaną przez system komputerowy, i w ostateczności, przy udziale konsolidatora dołączającego dodatkowe biblioteki i moduły, w plik wykonywalny (binarny) możliwy to wykonania przez system komputerowy.

Plik binarny – plik o dowolnej zawartości zawierającymi tekst zapisany w ustalonym sposobie kodowania znaków drukarskich, wraz z kodami sterującymi, w tym także z kodem znaku końca pliku.

Założenie:
Proces kompilacji, w swej istocie, to zmiana formy programu z kodu źródłowego rozumianego przez człowieka na formę binarną „rozumianą” przez system komputerowy.

Twierdzenie:
Kod źródłowy i plik wykonywalny są więc w swej istocie tym samym (rzeczowo) programem mimo różnych form (jedna przeznaczona dla człowieka, druga przeznaczona dla systemu komputerowego). Z tego wynika, że kod źródłowy i plik wykonywalny są sobie tożsame, dodatkowo każda z tych form jest równa programowi, który nabywamy a więc nabywając program nie powinniśmy otrzymywać jedynie formy binarnej, ale także jego kod źródłowy. W innym wypadku nabywanie produktu (programu) jest nieuczciwe bo nie otrzymujemy jego wszystkich form (półprodukt?).

Dobrze rozumuje? #filozofia #programowanie #programista15k #linux oraz #matematyka bo padły mądre słowa jak tożsamość i równość (czym różnią się te pojęcia?)
  • 28
Równość byłaby lepsza bo tedy byłyby sobie równe co do samej istoty (to ten sam program), ale różne formy (tu kod, tu plik wykonywalny).


@pyroxar: Może jestem trochę małostkowy, ale jeśli już chcemy używać pojęć równość i tożsamość przy próbie mimo wszystko dość formalnej argumentacji to warto je zdefiniować, zresztą w tym wypadku dojdziemy od razu do ściany. W klasycznej logice równość to wg mnie po prostu '='. W logice nieelementarnej
@pyroxar: Miałem napisać na końcu coś o tożsamości i zapomniałem: to pojęcie odnosi się bardziej do Zasady identyczności rzeczy nieodróżnialnych oraz zasady tożsamości (s. 229). Szczególnie to pierwsze to taka lektura do poduchy z dywagacjami w stylu:

Jeżeli mamy dwie rzeczy, a i b, to pierwsza z nich posiada własność bycia identyczną z a. Otóż b nie może mieć tej własności, w przeciwnym razie b byłaby a i mielibyśmy tylko jedną
Szanowny @Profesor_Milczarek, ja znalazłem coś takiego: http://logic.amu.edu.pl/images/3/3b/Wdm.pdf idę to czytać, uwzględnię uwagi z komentarzy. Na razie jedynie co mam to przeświadczenie o tym, ze nie dawanie dostępu do kodu źródłowego jest niesprawiedliwością, jeśli samo sprowadzanie mnie z właściciela oprogramowania (binarki) do jej użytkownika, czyli pozbawianie mnie prawa własności przez umowę licencyjną byłoby zbyt mało niesprawiedliwe. Ten drugi podpunkt wezmę na tapet potem, najpierw kod źródłowy; za jakiś czas przyjdzie tu nowa
pyroxar - Szanowny @Profesor_Milczarek, ja znalazłem coś takiego: http://logic.amu.ed...
@pyroxar czy kupując muzykę otrzymujesz zapis nutowy, lub rozpiskę na instrumenty w programie w którym to scalali?

Czy kupując chleb otrzymujesz dokładnie jego przepis (składniki i procedurę)?

Czy kupując samochód otrzymujesz jego plany?
nabywanie produktu (programu) jest nieuczciwe bo nie otrzymujemy jego wszystkich form (półprodukt?).


@pyroxar: już pomijając te definicje, nie wiem skąd takie twierdzenie. Po pierwsze raczej chodzi ci o to że oferowanie takiego programu jest nieuczciwe, a nie nabywanie, po drugie produktem nie jest jest kod, tylko właśnie plik wykonywalny w jakiejś formie. To tak jakbyś twierdził że producenci muzyki nie powinni sprzedawać samych MP3 (lub innych formatach) na płytach, tylko zamieszać
Kod źródłowy i plik wykonywalny są więc w swej istocie tym samym (rzeczowo) programem mimo różnych form (jedna przeznaczona dla człowieka, druga przeznaczona dla systemu komputerowego)


@pyroxar: Skąd ten pomysł. Kupując chleb nie kupujesz jednocześnie całej wiedzy, którą posiada piekarz na ten temat.