Czym są ogólnie języki programowania?
języki programowania to tylko sposób na rozmowę z komputerami. z grubsza mówiąc na początku, ponieważ komputery mogły rozumieć tylko zera i jedynki (ze względu na fakt, że komputery są zbudowane z tranzystorów jako przełączniki, które mogą przyjmować tylko dwa stany, nazywamy te dwa stany 0 i 1) i praca z 0,1 była trudna dla my jako ludzie, więc informatycy postanowili wykonać mapowanie jeden do jednego z każdej instrukcji w postaci binarnej (0,1) do postaci bardziej czytelnej dla człowieka, którą nazwali językiem asemblerowym.
na przykład gdybyśmy mieli instrukcję taką jak:
11001101
w montażu nazywa się to:
LOAD_A 15
co oznacza, że ładujemy zawartość rejestru a do komórki pamięci 15. tak jak powiedziałem, była to tylko konwencja wybierania 0 i 1 dla dwóch stanów tranzystorów lub czegokolwiek innego w komputerze. w ten sposób mając program z 50 instrukcjami, zapamiętanie języka asemblera byłoby łatwiejsze. więc użytkownik napisałby kod asemblera, a jakiś program (w tym przypadku asembler) przetłumaczyłby kody na instrukcje binarne lub język maszynowy, jak go nazywają.
ale potem, gdy komputery były ulepszane każdego dnia, było miejsce na bardziej skomplikowane programy z większą liczbą instrukcji, powiedzmy 10000.
w tym przypadku mapowanie jeden do jednego, takie jak asembler, nie zadziałałoby, więc stworzono inne języki programowania wysokiego poziomu. powiedzieli na przykład, że jeśli dla relacji z urządzeniami I / O do wydrukowania czegoś na ekranie stworzonym przez użytkownika potrzeba około 80 instrukcji, zróbmy coś tutaj i moglibyśmy spakować cały ten kod do jednej biblioteki i nazwać to na przykład printf a także stworzyć inny program, który mógłby przetłumaczyć to printf tutaj na powiązany kod asemblera i stamtąd assembler zrobi resztę. więc nazywają to kompilatorem.
więc teraz każdy użytkownik, który chce po prostu wydrukować coś na ekranie, nie musiałby pisać wszystkich instrukcji w postaci binarnej lub asemblacyjnej, po prostu wpisuje printf („coś”), a wszystkie programy, takie jak kompilator i asembler, zajmą się resztą. teraz później inne dłuższe kody byłyby pakowane w ten sam sposób, aby po prostu ułatwić pracę innym ludziom, jak widzisz, możesz po prostu uprościć tysiące linii kodu w jeden kod w Pythonie i spakować go do użytku innych osób.
więc powiedzmy, że spakowałeś wiele różnych kodów w Pythonie i utworzyłeś moduł (libray, pakiet lub cokolwiek chcesz go nazwać) i nazywasz ten moduł mgh (tylko moje imię). teraz powiedzmy, że w jakiś sposób stworzyliśmy tę mgh, którą każdy, kto mówi:
import mgh
mgh.connect(ip,port.data)...
mógł łatwo połączyć się ze zdalnym serwerem z określonym adresem IP i portem, a następnie wysłać dane (lub coś w tym rodzaju). teraz ludzie mogliby to wszystko zrobić używając jednej linii, ale dzieje się tak, że wykonywanych jest wiele kodów, które zostały pobrane z pliku mgh. a pakowanie nie służyło przyspieszeniu procesu wykonywania, ale raczej ułatwieniu pracy innym programistom. więc tutaj, jeśli ktoś chce najpierw użyć twojego kodu, powinien zaimportować plik, a następnie interpreter Pythona rozpozna cały kod w nim i będzie mógł zinterpretować kod.
teraz jeśli chcesz stworzyć język programowania i chcesz go wykonać, najpierw potrzebujesz tłumaczenia, na przykład powiedzmy, że tworzysz program, który mógłby zrozumieć składnię i przekonwertować go na c, w tym przypadku po przetłumaczeniu c, resztą zajmie się kompilator c, potem assembler, linker, .... chociaż musiałbyś zapłacić cenę wolniejszego, ponieważ najpierw trzeba go przeliczyć na c.
teraz jeszcze jedną rzeczą, którą możesz zrobić, jest stworzenie programu, który mógłby przetłumaczyć cały kod na równoważny język asemblera, tak jak dzieje się to z c, ale w tym przypadku program mógłby to zrobić bezpośrednio i stamtąd reszta byłaby wykonana przez konsolidator. wiemy, że ten program nazywa się kompilatorem.
więc mówię o tym, że jedyny kod, który system rozumie, to 0,1, więc w jakiś sposób powinieneś przekonwertować swoją składnię do tego, teraz w naszych systemach operacyjnych wiele różnych programów, takich jak assembler, linker i ... ma został stworzony, aby powiedzieć ci, że gdybyś mógł przekonwertować swój kod do asemblera, mogliby zająć się resztą lub, jak powiedziałem, możesz nawet użyć kompilatorów innych języków programowania, konwertując swój kod na ten język.