Objective-C

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Objective-C – rozszerzenie języka C o możliwości obiektowe, wzorowane na Smalltalku. Objective-C przyjął drogę całkowicie odmienną od C++. Jest używany głównie w frameworku Cocoa w systemie OS X oraz w iOS.

C# (C Sharp, dosłownie "C-krzyżyk", "cis") – obiektowy język programowania zaprojektowany przez zespół pod kierunkiem Andersa Hejlsberga dla firmy Microsoft.iPhone – smartfon przygotowany przez Apple Inc., oparty na systemie operacyjnym iOS mający pełnić funkcje telefonu komórkowego, platformy rozrywkowej i komunikatora internetowego. Urządzenie posiada także wbudowaną przeglądarkę internetową Safari Mobile umożliwiającą przeglądanie niektórych zasobów sieciowych.

Elementy składniowe, o jakie rozszerzono w tym celu język C, używają dwóch symboli: oraz @ (rozszerzeń składni jest więcej, ale tylko te wchodzą w jakiekolwiek interakcje ze składnią języka C). Nawiasy kwadratowe są używane do wywoływania metod, natomiast @ do definicji specyficznych dla języka Objective-C. Istnieją też specjalnie dla Objective-C wprowadzone typy, istniejące już według reguł języka C, z których najważniejszym jest id. Typ ten jest uniwersalną „referencją do obiektu” (dokładnie to wskaźnikiem z punktu widzenia języka C). Podobnie jak to jest w Smalltalku, klasa może utworzyć obiekt po wywołaniu na obiekcie klasy metody new:

Symbol @ (handlowe „po”, małpa, małpka lub at, z ang. „at” (czyt. æt) znaczącego „przy”, „w”, „na”; faktycznie pochodzące z łacińskiej ligatury ad: „przy”, „w”, „do”) wykorzystywany m.in. w adresie poczty elektronicznej, protokole FTP i w sieci Jabber. Występuje w zapisie uż[email protected] Zapis [email protected] oznacza użytkownika jan.kowalski na serwerze serwer.pl.Interfejs programowania aplikacji (ang. Application Programming Interface, API) – sposób, rozumiany jako ściśle określony zestaw reguł i ich opisów, w jaki programy komunikują się między sobą. API definiuje się na poziomie kodu źródłowego dla takich składników oprogramowania jak np. aplikacje, biblioteki czy system operacyjny. Zadaniem API jest dostarczenie odpowiednich specyfikacji podprogramów, struktur danych, klas obiektów i wymaganych protokołów komunikacyjnych.
id object = [[Klasa alloc] init];

Do zaprogramowania czegokolwiek należy stworzyć klasę. Tworzy się ją dwuetapowo: najpierw w pliku .h definiujemy nagłówki metod oraz pola wewnątrz definicji @interface, a potem w pliku .m (pliku z definicjami fizycznymi) – @implementation, gdzie zawierają się definicje metod.

Library of Congress Control Number (LCCN) – numer nadawany elementom skatalogowanym przez Bibliotekę Kongresu wykorzystywany przez amerykańskie biblioteki do wyszukiwania rekordów bibliograficznych w bazach danych i zamawiania kart katalogowych w Bibliotece Kongresu lub u innych komercyjnych dostawców. Cocoa – zorientowane obiektowo API, działające pod systemem OS X firmy Apple. Jest to jedno z pięciu głównych API dostępnych dla tego systemu – oprócz Cocoa istnieją jeszcze Carbon, POSIX (dla środowiska BSD), Java i X11. Nie bierze się pod uwagę innych, jak Perl czy Python, ponieważ za ich pomocą nie tworzy się zazwyczaj w pełni integralnych aplikacji.

Wartym wspomnienia elementem jest dodatkowa dyrektywa preprocesora #import, która odpowiada #include, lecz nie potrzebuje makrowartowników (plik raz wczytany w danej jednostce kompilacji nie będzie wczytany przy następnych dyrektywach #import).

W składni Objective-C istnieje mnóstwo podobieństw do Smalltalka, co objawia się m.in. charakterystycznymi dla tego języka „wielosłownymi” nazwami metod (zwanych selektorami), tzn. metoda ma w odpowiednich miejscach dwukropki i na tych pozycjach podczas wywoływania będą przekazywane argumenty, np.:

W programowaniu obiektowym klasa jest częściową lub całkowitą definicją dla obiektów. Definicja obejmuje dopuszczalny stan obiektów oraz ich zachowania. Obiekt, który został stworzony na podstawie danej klasy nazywany jest jej instancją. Klasy mogą być typami języka programowania - przykładowo, instancja klasy Owoc będzie mieć typ Owoc. Klasy posiadają zarówno interfejs, jak i strukturę. Interfejs opisuje, jak komunikować się z jej instancjami za pośrednictwem metod, zaś struktura definiuje sposób mapowania stanu obiektu na elementarne atrybuty.IncrTCL (lub skrótowo Itcl) – rozszerzenie języka TCL o obiektowość. Prefiks Incr jest analogią do zastosowanego wobec języka C sufiksu ++ (w języku C operator ++ oznacza inkrementację wartości zmiennej o 1, w TCLu natomiast robi się to za pomocą komendy incr).
[object setA: 5 andB: 10];

Istotne różnice w stosunku do Smalltalka są wymuszone przez konieczność używania statycznej typizacji w języku C. Dlatego właśnie w definicjach metod, odmiennie niż w Smalltalku, należy podawać jawnie typ argumentu, jeśli nie jest to id:

-setA: (int)a andB: (int) b;

Znak '-' oznacza, że jest to metoda obiektu. Mógłby być to też '+', wtedy byłaby to metoda klasy (odpowiednik metody statycznej w C++).

OpenStep jest obiektowo zorientowanym systemem operacyjnym, który używa dowolnego współczesnego systemu operacyjnego jako rdzenia. Głównie tworzony przez NeXT.Biblioteka Narodowa Francji (fr. Bibliothèque nationale de France, BnF) – francuska biblioteka narodowa, znajdująca się w Paryżu. Przewidziana jest jako repozytorium dla wszystkich materiałów bibliotecznych, wydawanych we Francji. Obecnym dyrektorem Biblioteki jest Bruno Racine.

Kwestia statycznej typizacji i jednocześnie interakcji z językiem C wprowadza wiele zamieszania. O ile w Smalltalku „wszystko jest obiektem”, o tyle w Objective-C obiektem jest tylko to, co jest dostarczone przez samą nakładkę; elementy takie jak liczby całkowite, czy zmiennoprzecinkowe, są obsługiwane już zgodnie z językiem C. Wprowadza to też zamieszanie w samej definicji języka; przykładowo w kompilatorze GCC można posługiwać się nazwą klasy jako typem statycznym (tzn. można używać np. Klasa*, gdzie Klasa jest klasą zdefiniowaną w Objective-C), natomiast w kompilatorze POC należy się posługiwać wyłącznie wskaźnikiem id dla obiektów Objective-C.

Smalltalk jest w pełni obiektowym, reflektywnym językiem programowania z dynamicznym typowaniem. Umożliwia to w praktyce zupełnie inny sposób programowania od tego, do jakiego są przyzwyczajeni programiści używający współczesnych języków obiektowych (np. Java), które rozwinęły się z wcześniejszych języków proceduralnych takich jak C, czy Pascal.Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.

Statyczna typizacja nie wpływa jednak (odmiennie, niż w C++, jak również w Javie, C# i innych zaczerpniętych z C++) na możliwość wywołania metody. Na rzecz obiektu trzymanego przez wskaźnik id można wywołać dowolną metodę, a błąd w tym wywołaniu zostanie wykryty na etapie wykonywania. Tak samo zresztą rzecz ma się w Smalltalku i Incr Tcl.

iPad – tablet przedsiębiorstwa Apple. Ma 9,7-calowy ekran dotykowy z technologią Multi-Touch oraz m.in. możliwość oglądania filmów i zdjęć. Ma przeglądarkę internetową oraz jest kompatybilny z aplikacjami App Store dla iPhone’óworaz iPodów. Przeglądarka internetowa Safari dołączona do iPada nie obsługuje technologii Flash. Urządzenie waży 680 gramów (wersja 3G waży 730 g), mieści się zatem między cięższymi od niego laptopami oraz lżejszymi niż on smartphone’ami.iOS – system operacyjny Apple Inc. dla urządzeń mobilnych iPhone, iPod touch oraz iPad. Obecna nazwa funkcjonuje od 7 czerwca 2010, wcześniej system był znany jako iPhone OS. System ten bazuje na systemie operacyjnym Mac OS X 10.5 i tym samym jądrze Darwin.

Model obiektowy w Objective-C jest w ogólności wierną kopią modelu Smalltalka pod każdym względem:

  • klasa Object, niejawnie dziedziczona przez wszystkie klasy Objective-C
  • dziedziczenie wyłącznie jednokrotne - realizowane w ten sposób, że nierozpoznana wiadomość zostanie przekazana do „superklasy” (klasy bazowej, w terminologii C++)
  • koncepcja metaklas, w której klasa jest również obiektem, natomiast tworzenie „obiektu” jest czynnością wykonywaną przez klasę
  • Nie istnieje standard języka Objective-C — rozwijane są niezależnie dwie nieformalne „koncepcje”: Apple i Stepstone. Implementacja koncepcji Apple jest dostępna jako Apple Objective-C oraz GNU Objective-C (wraz z GCC), natomiast kompilator dla Stepstone Objective-C jest znany jako POC. Koncepcja Stepstone, implementowana przez POC, różni się od Apple m.in.:

    iPod touch – kieszonkowy odtwarzacz MP3 firmy Apple Inc., zasadniczo wielofunkcyjny palmtop z systemem operacyjnym iOS, zaprezentowany 5 września 2007. Jest to pierwszy iPod z wbudowanym Wi-Fi, z bezpośrednim dostępem (jedynie bezprzewodowym) do internetu, w tym przez przeglądarkę sieciową, a także specjalną przeglądarkę serwisu YouTube bez pomocy wtyczki Adobe Flash i sklepu internetowego iTunes Store. Szacuje się że sprzedano 32 miliony sztuk iPodów touch (dane pod koniec 2009).C – imperatywny, strukturalny język programowania wysokiego poziomu stworzony na początku lat siedemdziesiątych XX w. przez Dennisa Ritchiego do programowania systemów operacyjnych i innych zadań niskiego poziomu.
  • POC posiada pełne odśmiecanie pamięci (gc Boehma lub RC)
  • POC posiada lambdę z domknięciami
  • POC nie obsługuje statycznej typizacji obiektów Objective-C
  • Dodatkowo, POC i GCC potrafią implementować nakładkę Objective-C również na język C++, realizując koncepcję Objective-C++ (pliki kompilowane mają wtedy rozszerzenie .mm zamiast .m). Kompilator POC, odmiennie niż GNU Objective-C, pracuje podobnie jak Cfront dla C++: na podstawie plików .m (.mm) generuje kod w języku C, który następnie podlega kompilacji jako język C (lub C++).

    SUDOC (fr. Système Universitaire de Documentation, pol. Uniwersytecki System Dokumentacji) – centralny katalog informacji bibliograficznej francuskiego szkolnictwa wyższego.Garbage collection (zbieranie nieużytków, odśmiecanie) – jedna z metod automatycznego zarządzania dynamicznie przydzieloną pamięcią, w której za proces jej zwalniania odpowiedzialny jest nie programista, lecz programowy zarządca nazwany garbage collector. Pierwsza metoda odśmiecania została opracowana w 1959 roku przez Johna McCarthy’ego w celu rozwiązania problemu ręcznego zarządzania pamięcią w Lispie. Mechanizm ten następnie został szeroko rozpowszechniony i jest wykorzystywany w wielu wysokopoziomowych językach programowania, takich jak: Smalltalk, Python, Ruby, Java, C# czy D.

    Język Objective-C ostatnio zdobywa popularność w związku z sukcesem urządzeń mobilnych iPhone, iPod touch i iPad. Inne bardziej znane projekty wykonane w tym języku to Cocoa, będący głównym API wysokopoziomowym w Mac OS X oraz GNUStep, mający być implementacją systemu okienkowego OpenStep, stworzonego wcześniej przez NeXT jako NeXTStep. Powiązanie owych faktów jest nieprzypadkowe: Apple swego czasu przejął NeXT wraz z dobrodziejstwem inwentarza, czyli OpenStep i Objective-C.

    GCC (ang. GNU Compiler Collection) - zestaw kompilatorów do różnych języków programowania rozwijany w ramach projektu GNU i udostępniany na licencji GPL oraz LGPL.Definicja intuicyjna: Java (wym. „dżawa”) to język programowania. Programy napisane w Javie można uruchamiać na wielu urządzeniach, takich jak telefony komórkowe lub komputery oraz pod różnymi systemami operacyjnymi, przy użyciu Wirtualnej maszyny Javy, która musi być w danym środowisku zainstalowana.
    Kontrola autorytatywna – w terminologii bibliotekoznawczej określenie procedur zapewniających utrzymanie w sposób konsekwentny haseł (nazw, ujednoliconych tytułów, tytułów serii i haseł przedmiotowych) w katalogach bibliotecznych przez zastosowanie wykazu autorytatywnego zwanego kartoteką wzorcową.Gemeinsame Normdatei (GND) – kartoteka wzorcowa, stanowiąca element centralnego katalogu Niemieckiej Biblioteki Narodowej (DNB), utrzymywanego wspólnie przez niemieckie i austriackie sieci biblioteczne.




    Warto wiedzieć że... beta

    Apple Inc. (wcześniej Apple Computer Inc.) NASDAQ: AAPL – amerykańska korporacja zajmująca się projektowaniem i produkcją elektroniki użytkowej, oprogramowania i komputerów osobistych z siedzibą w Cupertino w Kalifornii. Założona przez Steve’a Wozniaka – projektanta, Steve’a Jobsa i Ronalda Wayne’a. Produkty spółki to m.in.: komputery Mac, iPod, iPhone i iPad. Oprogramowanie Apple obejmuje system operacyjny OS X, przeglądarkę multimediów iTunes, pakiet oprogramowania multimedialnego i kreatywności iLife, pakiet oprogramowania biurowego iWork, profesjonalny pakiet fotografii Aperture, pakiet profesjonalnych rozwiązań wideo Final Cut Studio oraz zestaw narzędzi audio Logic Studio. Od stycznia 2010 roku firma działa poprzez 284 własnych sklepów detalicznych w dziesięciu krajach, oraz za pośrednictwem sklepu internetowego sprzedającego zarówno sprzęt, jak i oprogramowanie.

    Reklama