Czarny Ass Opublikowano 29 Grudnia 2012 Udostępnij Opublikowano 29 Grudnia 2012 Języki interpretowane działają z interpreterem, tzn są wczytywane z pliku, interpretowane przez interpereter i dopiero wykonywane. Bez interpretera nic nie zrobimy. Języki kompilowane - kod jest kompilowany i odpalany samodzielnie. Ja mam pytanie - kiedy ta różnica się zaciera? Dość filozoficzne pytanie (filozofia programistyczna :D). Kiedy kod źródłowy jest dodawany do lauchera w postaci pojedyńczego exeka - według mnie mamy język interpretowany. Jednak z drugiej strony jest samodzielnym exekiem. W zasadzie takie "czyste" exeki też są interpretowane, tyle że przez procesor (no chyba, że nie rozumiem idei języka interpretowanego) No i wytłumaczcie mi jak to jest z tymi exekami dla Windows NT. Da się je odpalić tylko na systemach z tej rodziny, ponieważ... co? A jakbym zrobił nowy typ plików wykonywalnych - dałbym im rozszerzenie np .ferrari4 i stworzył specjalnie dla systemu operacyjnego (który bym nazwał np. Ferrari4OS) interpreter, który by automatycznie odpalał te pliki z tym rozszerzeniem (może tak jest w Windows NT, nie znam się - dlatego się pytam). Wszystko wyglądało by standardowo - plik wykonywalny, klikam na niego, odpala się, cały system tak działa. Czy to nadal nazwę językiem interpretowanym czy już kompilowany - specjalnie dla nowego OSa, wszystko mogłoby wygladac identycznie jak na Windowsie czy Linuxie. Wytumaczie mi to czego nie wiem, albo to co źle wiem. Podzielcie się opinią. :) Zainspirował mnie temat z języiem DM+. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ediepl Opublikowano 29 Grudnia 2012 Udostępnij Opublikowano 29 Grudnia 2012 Interpretowany - polecenie jest ładowane, i wykonywane przez interpreter, i nie zawszę równa się jednemu rozkazowi procesora. Kompilowany( Kod maszynowy ) - jedna instrukcja = jeden rozkaz procesora. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 29 Grudnia 2012 Udostępnij Opublikowano 29 Grudnia 2012 Procesor nie interpretuje kodu maszynowego. On go wykonuje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 29 Grudnia 2012 Autor Udostępnij Opublikowano 29 Grudnia 2012 Dobra, racja. ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 31 Grudnia 2012 Udostępnij Opublikowano 31 Grudnia 2012 Nie wydaje mi się, aby było tak do końca jak mówi ediepl Interpretowany czyli interpreter czyta dane i je wykonuje Kompilowany, czyli kod został wcześniej skompilowany - czyli przełożony z kodu "ludzkiego" na maszynowy Fervi Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 31 Grudnia 2012 Udostępnij Opublikowano 31 Grudnia 2012 @Fervi ediepl dobrze mówi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 31 Grudnia 2012 Udostępnij Opublikowano 31 Grudnia 2012 No i wytłumaczcie mi jak to jest z tymi exekami dla Windows NT. Da się je odpalić tylko na systemach z tej rodziny, ponieważ... co? NT? A nie chodzi ci przypadkiem o RT? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Utermiko Opublikowano 31 Grudnia 2012 Udostępnij Opublikowano 31 Grudnia 2012 Jemu chodzi o jądro Windows NT, nie o system. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Fervi_ Opublikowano 31 Grudnia 2012 Udostępnij Opublikowano 31 Grudnia 2012 Kompilacja ? kod źródłowy jest tłumaczony do postaci języka maszynowego, czyli sekwencji elementarnych operacji gotowych do bezpośredniego przetworzenia przez procesor komputera. Jeżeli dany język programowania podlega kompilacji, określany jest mianem kompilowanego języka programowania. Interpretacja ? kod źródłowy jest na bieżąco tłumaczony i wykonywany przez dodatkowy program zwany interpreterem. Jeżeli język podlega interpretacji, nazywany jest interpretowanym językiem programowania. Tylko pytanie jeśli funkcja jest naprawdę paskudna, w zasadzie nie powinna być wykonywana przez 1 cykl zegara procesora. Słyszałem, że tylko ARM jest w stanie w ciągu jednego cyklu wykonać jedną funkcję, ale o to proszę raczej obeznanych ludzi Fervi PS. NT przynajmniej częściowo jest chyba kompatybilne z chociażby ME, aczkolwiek od Visty usunięto sporą część kodu 98, więc nie wiem czy jest kompatybilny z tą linią (przez to wiele gier ucierpiało). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Compi Opublikowano 1 Stycznia 2013 Udostępnij Opublikowano 1 Stycznia 2013 Panowie! Język interpretowany jest interpretowany przez interpreter. Oznacza to, że kod maszynowy kreowany jest dynamicznie, dopiero po uruchomieniu. Interpreter musi zachować się jak taki wirtualny procesor. Język kompilowany jest tłumaczony na instrukcje x86 (w przypadku win/lin). Teraz uwaga. Po kliknięciu dwa razy na plik exe, cały plik jest ładowany do pamięci. Dla nas cały plik to krzaki. Każdy krzak ma swój kod ASCII. Ten kod to ID komendy procesora. Przykład: GML 05 40 00 0F 00 . @ . . . Co to oznacza? add eax,000F0040 Pliki Exe nie są kompatybilne wstecz tylko z tego względu że funkcję które wywołują z bibliotek systemowych dawno już nie ma. I tak naprawdę czyste pliki binarne bez żadnych wywołań bibliotek i różnicy nagłówków ELF/PE działały by na każdym komputerze z prockiem x86 Tak więc kompilacja to nic innego jak tłumaczenie źródła na kod maszynowy, a interpretacja to wykonywanie pośrednie przez rezydentny program. Kompilacja: zmienna:=zmienna+5 -> INC 0xWSKAŹNIK_ZMIENNEJ, 5 Interpretacja zmienna:=zmienna+5 -> zmienna:=zmienna+5 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się