Jestem początkującym programistą i nie rozumiem terminologii. Chciałbym wiedzieć, czy kod źródłowy napisany w skompilowanym języku, takim jak C lub C ++, jest uważany za program? Jeśli nie, czy ktoś może wyjaśnić, dlaczego?
terminology
source-code
Othman
źródło
źródło
Odpowiedzi:
Zobacz wpis w Wikipedii dotyczący programu : (dodałem pogrubienie )
Tak więc „program” to zestaw instrukcji wykonywanych przez komputer, a „kod źródłowy” to czytelna dla człowieka wersja tych instrukcji.
źródło
Tak to jest.
ALE
Niebezpieczeństwo związane z tym sposobem myślenia zbliża się do: „komputer wykonuje mój program, piszę swój program w [np. C], ergo, że kod źródłowy to instrukcje dla komputera”.
I tak myślało zbyt wielu z nas przez zbyt wiele dekad w XX wieku. W ciągu ostatniej dekady nauczyliśmy się, że głównymi odbiorcami kodu źródłowego są inni programiści . Tak, więc źródłem jest program, tak samo jak program w teatrze, który mówi innym ludziom, co się dzieje. Piękno kodu źródłowego polega na tym, że jest to nie tylko program, ale także zestaw instrukcji dla komputera ...
źródło
To, czy jest, czy nie, zależy od kontekstu. Pomyśl o tym w ten sposób. Zapominam, jaka jest formalna nazwa tego pojęcia, ale istnieje teoria języka, która mówi, że słowa mają znaczenie, które opisują nie to, czym jest, ale czym nie jest . Czerwone jabłko nie jest czerwone, ponieważ jest, no cóż, czerwone, ale dlatego, że nie jest niebieskie, nie zielone itp. Zignoruj, czy to prawda, czy nie, ale po prostu załóż, że tak jest przez sekundę i pomyśl o tym w tym kontekście.
Kiedy więc pomyślimy o tej koncepcji, możemy porównać nasz kod źródłowy z planem domu. Jeśli patrzysz na plan ze stosu innych planów i pytasz „czy to dom”, a inne plany dotyczą budynków komercyjnych, mostów itp., Odpowiedź brzmi „tak”. Ponieważ plan nie reprezentuje wszystkich innych rzeczy, a aspekt domu jest tym, co odróżnia go od innych planów.
Oczywiście plan domu nie jest tym samym, co prawdziwy dom wykonany z drewna i płyt kartonowo-gipsowych, w którym można stać. Istnieją konteksty, w których znacząca jest różnica między planem a rzeczywistym domem. Istnieje różnica między planem a rezultatem.
W ten sam sposób kod źródłowy programu w skompilowanym języku jest podobny do schematu, jeśli porównujesz go z bibliotekami, modułami jądra itp., To kod źródłowy i program są koncepcyjnie takie same. Ale jeśli patrzysz na to, jak oprogramowanie jest kompilowane, projektowane i wdrażane, oba są różne. Po raz kolejny istnieje różnica między planem a rezultatem.
tl; dr: Czasami to, co jest i co reprezentuje, jest uważane za to samo, ale innym razem nie.
źródło
Kod źródłowy to ogólny termin określający oryginalne wiersze kodu (autorstwa ludzi). Inne rodzaje kodu, które nie są źródłowe, mogą być tworzone przez tłumaczenie lub inny program.
Własność intelektualna jest jeszcze szersza i może obejmować zarówno kod źródłowy, jak i inny kod lub dane.
Program różni się od innego kodu (źródłowego lub innego) pod względem kompletności. Program to kod, który jest wystarczająco kompletny, aby można go było uruchomić (lub jest przeznaczony do uruchomienia). Nie cały kod (źródłowy lub inny) reprezentuje wystarczającą kompletność do uruchomienia. Na przykład biblioteki mają być łączone z innym kodem i używane przez nie, a zatem ogólnie nie powinny być uważane za program, ponieważ nie mogą (nie powinny) być uruchomione.
Ta kompletność czasami oznacza posiadanie
main
, który jest używany przez system operacyjny jako punkt wejścia dla programuMówiąc ogólnie, gdy program jest uruchomiony, nazywa się to procesem.
źródło
Kod źródłowy jest preferowaną formą oprogramowania, na którym ludzkie programiści są roboczym . Wiedza jest taka , że tworzenie oprogramowania jest procesem społecznym, więc kod źródłowy jest pojęciem społecznym . Piszesz kod źródłowy głównie dla ludzi (twoi znajomi programiści, a nawet sam pracujesz za kilka miesięcy nad tym samym programem), a nie dla komputerów. W przypadku programu zakodowanego w C często są to (ale nie zawsze)
.c
pliki C i.h
pliki nagłówkowe, ale Makefile jest także kodem źródłowym. Ale czasami stosowane są techniki metaprogramowania : jakiś program generuje kod C, a następnie dane wejściowedo tego generatora jest uważany za kod źródłowy (nawet jeśli wyjście tego generatora to kod C). Dwa przykłady: możesz użyć generatora analizatora składni (takiego jak GNU Bison ) do analizowania problemów, następnie.y
plik wejściowy tego generatora to kod źródłowy. Lub możesz napisać mały skrypt awk lub gawk, aby wyodrębnić z bazy danych sqlite pewne dane, które zostałyby przekształcone w np. Dużąenum
deklarację w wygenerowanym nagłówku; wtedy ta baza danych zawierałaby kod źródłowy!Natomiast program komputerowy jest powiązany z komputerem, na którym jest uruchomiony. Zwykle jest uzyskiwany przez kompilację kodu źródłowego (napisanego w pewnym języku programowania , a są to specyfikacje napisane w języku angielskim w dokumentach technicznych - patrz szkic n1570 dla C11 -, nie narzędzi programowych!) W binarny plik wykonywalny .
Przeczytaj także o wolnym oprogramowaniu . Zanurz się w kodzie źródłowym istniejących projektów wolnego oprogramowania (zobacz github lub sourceforge, aby je znaleźć).
źródło