Strona główna » Liceum » Przedmioty ścisłe » Informatyka


C++ - wykład 4/4



Poprzednia praca: C++ - wykład 2/4
Następna praca: C++ - wykład 3/4



Treść:
Wykład 4 - 3 godz
Zakres tematyczny
1. Łączenie procedur w różnych językach
Czasami przychodzi moment, kiedy programy napisane w języku C/C++ muszą wywołać programy napisane w innych językach, lub kiedy program napisany w innym języku musi wywołać funkcję napisaną w języku C/C++. Taki proces nazywany jest mixed-language programing- programowanie w mieszanych językach. Np. kiedy jakiś szczególny podprogram dostępny jest w języku innym niż C/C++, lub kiedy algorytm opisany jest w sposób bardziej naturalny w innym języku, występuje potrzeba użycia w programie, więcej niż jednego języka.
Na dzisiejszym wykładzie omówimy najważniejsze zasady mixed language programing.
Tworzenie wywołań w językach mieszanych
Programowanie w językach mieszanych MLP, sprowadza się do odwołań do funkcji, procedur lub podprogramów, w zależności od konwencji przyjętej dla danego języka. Np.:, BASIC-kowski moduł główny, może wykonywać specyficzne zadanie, które chciałby programista zaprogramować oddzielnie. Zamiast wywoływać jednak podprogram BASIC-kowski, decyduje się wywołać funkcję C.
Wywołanie funkcji napisanych w różnych językach polega na wywołaniu funkcji umieszczonych w różnych modułach. Zamiast kompilowania wszystkich modułów jednym kompilatorem, używa się różnych kompilatorów (różnych języków). Na marginesie należy tu zaznaczyć, iż uwaga ta dotyczy kompilatorów języków tego samego producenta. np. Microsoft czy też Borland, co związane jest z różnicami w formatach modułów obj.
Dla powyższego przykładu oznacza to, że moduł główny kompilowany jest w kompilatorze BASIC, inny zbiór zawierający funkcję C kompilatorem C, a dopiero potem oba zbiory obj-towe linkowane są w jeden kod wynikowy.

Na rysunku powyżej widzimy wywołanie z poziomu języka BASIC funkcji prn() języka C, podobnej do podprogramu w języku BASIC. Są dwie istotne różnice pomiędzy tym wywołaniem mieszanym, z wywołanie pomiędzy dwoma BASIC-kowskimi modułami:
- podprogram prn jest zaimplementowany w języku C, używając standardu tego języka
- wykonanie wywołania w BASIC'u jest poprzedzone użyciem instrukcji DECLARE używającej słowa kluczowego CDECL do stworzenia kompatybilności z C.T a interfejsowa instrukcja, zmienia nazewnictwo i konwencje wywołań. Każdy język dostarcza swoich własnych form interfejsów.
Można wykonywać wywołania mieszane nie zważając na to, czy funkcje wywoływane z innych modułów zwracają wartości.
Językowe odpowiedniki dla wywołań funkcji (procedur, podprogramów)
Język Zwracająca wartośćNie zwracająca wartości
Asembleryprocedureprocedure
BASICFUNCTION procedureSubprogram
C/C++functionvoid function
FORTRANFUNCTIONSUBROUTINE
PASCALFunctionProcedure
Jak widać z tabelki moduł C może wykonać wołanie fortranowskiego SUBROUTINE, będącego odpowiednikiem void function z języka C, itp.
Wymagania dotyczące konwencji językowych
W mieszanym programowaniu, wywołujący program musi przestrzegać tych samych konwencji, jak program wywoływany. Konwencje te można pogrupować w następujące grupy:
-jak kompilator traktuje identyfikatory, włączając nazwy funkcji i zmiennych - konwencja nazewnictwa
-jak zaimplementowane jest wywołanie podprogramu - konwencja wywołań
-jak przekazywane są parametry - konwencja przesyłania parametrów.
Konwencja nazewnictwa
Zarówno program wywołujący jak i wywoływany podprogram, musza zgadzać się na płaszczyźnie nazw identyfikatorów. Identyfikatory mogą odnosić się do podprogramów (funkcji, procedur) lub zmiennych mających publiczny lub globalny zakres. Każdy język zmienia nazwy identyfikatorów.
Termin "konwencja nazewnictwa" odnosi się do sposobu w jaki procesor zmienia nazwy podprogramów zanim umieści je w zbiorze obj-towym. Każdy język zmienia te nazwy na swój sposób. Programista może wybierać pomiędzy różnymi konwencjami nazewnictwa, aby upewnić się że nazwy w wywołującym programie zgadzają się z tymi w programie wywoływanym. Jeśli nazwy wywoływanego podprogramu są przechowywany w każdym zbiorze obj-towym inaczej, wtedy linker nie byłby w stanie znaleźć powiązań. Będzie wtedy raportował o nierozerwalnym zewnętrznych powiązaniach.
Większość kompilatorów języka ładuje kod maszynowy do zbioru obj-towego. Przechowywane tam też są nazwy publicznych podprogramów i zmiennych. Linker może wtedy porównać nazwę podprogramu wywoływanego w jednym module z nazwą podprogramów zdefiniowanych w innym module i rozpoznaje powiązania. Nazwy tworzone są zgodnie ze standardem znaków ASCII
BASIC, FORTRAN i PASCAL używają podobnej konwencji nazewnictwa. Tłumaczą każdą literę na duże znaki.
Każdy język rozpoznaje różną liczbę znaków. I tak np. FORTRAN rozpoznaje pierwszych 31 znaków w nazwie (chyba że nazwy identyfikatorów są obcinane - ustawieniem opcji $TRUNCATE), Pascal pierwsze 8, Basic pierwszych 40 znaków. Jeśli nazwa zawiera więcej znaków niż dopuszcza dany kompilator, pozostałe znaki nie są po prostu umieszczane w zbiorze obj-towym.
Kompilatory języka C nie zamieniają każdej litery na duże. Nazwa każdego podprogramu uzupełniana jest od przodu znakiem podkreślenia. Kompilator tego języka rozpoznaje 31 znaków nazwy identyfikatora (32 włączając znak podkreślenia). Używając odpowiednich opcji kompilatora (np./H) można zmienić liczbę rozpoznawanych znaków.
Kompilator języka C++..................................................... Rozpoznaje pierwszych 247 znaków nazwy.
Słowa kluczowe języków programowania mieszanego zajmują się automatycznie różnicami w konwencji nazewnictwa tak długo jak przestrzegane są dwie zasady:
1. ograniczać nazewnictwo identyfikatorów do 6 znaków, jeśli:
a). włączane procedury kompilowane były kompilatorem Fortran ...


Widzisz tylko część pracy, aby zobaczyć całość, musisz się zalogować.

Nie masz jeszcze u Nas konta? Na co czekasz? ZAREJESTRUJ SIĘ JUŻ TERAZ

Zapomniałeś hasła? Skorzystaj z formularza przypominającego hasło.


Czytano: 2845 , autor: ew.la , Ocena: 42.16

      Blip Śledzik Twitter Facebook Buzz Wykop

Inne podobne teksty do tytułu C++ - wykład 4/4

C++ - wykład 8
C++ - wykład 7
C++ - wykład 6
C++ - wykład 3
C++ - wykład 1
C++ - wykład 2/4
C++ - wykład 3/4
C++ - wykład 4/4 cd.
Tablice w jezyku C++


Losowe teksty z tej samej kategorii

Windows 2000 serwer (1)
stare komputery
Budowa i zadania systemu MS-DOS
Urzadzenia techniki komputerowej
Eniac - pierwszy komputer (1)
Tryby uruchamiania komputera w systemach Windows ™
Zarabianie przez internet
Procesory (1)
Ciągi różne
Telefonia Internetowa.


Wasze komentarze

Brak komentarzy dla danej pracy.




Zmień kategorię:

Zobacz także:

Przedmioty ścisłe
Chemia Chemia
Fizyka Fizyka
Informatyka Informatyka
Matematyka Matematyka

A A A A - zmień wielkość czcionki


Oceń pracę:

Ocena pracy wynosi 42.16.

Informacje o pracy:

⇒Dodano: 2008-02-11 21:04:26
⇒Czytano: 2845
Autor: ew.la


Dodatkowe opcje:

Drukuj stronę
ZGŁOŚ NARUSZENIE
Wyślij znajomemu
Dodaj do ULUBIONYCH



Dodaj komentarz:

Tytuł:

Treść: