Kasutaja:Rengar4/Objective-C

Allikas: Vikipeedia
Jump to navigation Jump to search
Objectice-C's arendamine

Objective-C on üldotstarbeline, objektorienteeritud programmeerimiskeel. See oli peamine kasutatav programmeerimiskeel Apple OS X' ja iOS operatsioonisüsteemide arendamisel, enne programmeerimiskeele Swift välja töötamist. Objective-C arendati algselt 1980. aastate alguses. See oli peamine keel, mida kasutas NeXT oma operatsioonisüsteemi NeXTSTEP arendamisel. Objective-C lähtekoodi rakendamise programmi failid kasutavad tavaliselt .m faili laiendust, Objective-C päise/liidese faili laiend on .h, sama, mis programmeerimiskeele C päise failidel. C++ failid on aga tähistatud .mm laiendiga.

Ajalugu[muuda | muuda lähteteksti]

Objective-C loodi peamiselt Brad Cox'i ja Tom Love'i poolt 1980. aastate algul nende firmas StepStone. Cox sai aru, et programmeerimis keel nagu Smalltalk on väärtusetud arenduskeskkondade loomisel. Ta alustas kirjutamist sellega, et lisas keelele osasid Smalltalki funktsioone ning varsti oligi tal juba töötav objektorienteeritu laiendite rakendus, mida ta kutsus OOPC'ks (Object-Oriented Pre-Compiler). 1982. aastal tekkis Love'il võimalus saada koopia uuest Smalltalk-80'st, mis mõjutas aregut veelgi. Love ja Cox lõpuks lõid uue ettevõtte PPI (Productivity Products International, hiljem StepStone), et turustada oma toodet. 1986. aastal avaldas Cox raamatu Object-Oriented Programming, mis kirjeldas Objective-C'd.

Populariseerimine läbi NeXT'i[muuda | muuda lähteteksti]

1988. aastal litsentsis NeXT Objective-C StepStone'ilt ning täiustas seda. NeXTi enda tööjaamad ei mõjutanud tugevalt turgu, kuid tarkvara tööristad olid populaarsed. NeXT lõpetas riistvara tootmise ning fokuseeris tarkvara tööriistadele, müües NeXTSTEPi, kui programmeerimise platformi.

Apple'i arendus ja Swift[muuda | muuda lähteteksti]

Peale seda, kui Apple omandas NeXTi 1996. aastal, kasutas Apple OpenStep'i, mis oli NeXTi poolt toodetud rakendusliides, oma uue operatsioonisüsteemi OS X jaoks. See sisaldas Objective-C'd, NeXTi Objective-C'l baseerunud arendaja tööriistu, Project Builderit ning Interface Builderit, hiljem pandi need kokku ühte rakendusse, Xcode. 2014. aastal tutvustas Apple uut keelt, Swift, mida tutvustati kui "Objective-C ilma C-ta".

Keele variandid[muuda | muuda lähteteksti]

Objective-C++[muuda | muuda lähteteksti]

Objective-C++ on keele variant, mida saab kasutada GNU Compiler Collectioniga ja Clangiga, mis suudavad kompileerida lähte faile, mis kasutavad kombinatsiooni C++'i ja Objective-C süntaksist. Objective-C++ lisab C++'ile laiendusi, mida Objective-C lisab C'le. Kuna midagi ei ole tehtud, et ühildada tähendusi erinevate keelte omaduste taga, siis on osasid piirangud, näiteks:

  • C++ klassi ei saa tuletada Objective-C klassist ja vastupidi.
  • C++'i nimeruume ei saa deklareerida Objective-C deklaratsiooni.

Objective-C 2.0[muuda | muuda lähteteksti]

2006. aastal Apple teatas Objective-C 2.0'ist, uuendatud Objective-C programmeerimis keelest, mis sisaldab kaasaegset prügi kogumist, süntaksi lisandeid, käitlusaja jõudluse parandusi ja 64-bitise süsteemi tuge. Mac OS X v10.5, lasti välja 2007. aastal ning see sisaldas Objective-C 2.0'i kompilaatorit.

Blocks[muuda | muuda lähteteksti]

Blocks on mittestandardne laiend Objective-C'le (ning ka C'le ja C++'ile), mis kasutab erilist süntaksi, et luua sulundeid. Blocks on toetatud ainult Mac OS X 10.6 või uuemas, iOS 4 või uuemas ning GNUstepis koos libobjc2 1.7 ja kompileerides Clang 3.1 või uuemaga.

Kaasaegne Objective-C[muuda | muuda lähteteksti]

Automatic Reference Counting[muuda | muuda lähteteksti]

Automatic Reference Counting (ARC) on kompileerimis aja omadus, mis elimineerib vajaduse programmeerijatel manuaalselt hallata säilitatud arve. ARC ja manuaalne mälu haldamine ei ole üksteisest välistatavad, programmeerijad saavad jätkata mitte ARC koodi kasutamist ARC lubatud projektides, lülitades välja ARC individuaalselt koodi failidest. Xcode võib ka proovida automaatselt muuta projekti ARC projektiks.

Sõnastikud[muuda | muuda lähteteksti]

Objective-C on juba pikemat aega sisaldanud võimalust kasutada lühikest vormi uute sõnede loomiseks. Kasutades seda formaati säästab programmeerija aega, kuna ta ei pea kasutama pikki meetodeid. Kasutades Apple LLVM kompilaator 4.0 või uuemat, saab luua sõnastiku süntaksi abil kaa massiive, sõnastike ja numbreid.

Subscripting[muuda | muuda lähteteksti]

Kasutades Apple LLVM kompilaator 4.0 või uuemat, saab massiive ja sõnastike manipuleerida, kasutades subscriptingut. Subscriptingut saab kasutada väärtuste võtmistel massiividest või sõnastikest ning mitme objekti puhul saab neid märgistada indeksiteks või võtmeteks.

"Kaasaegne" Objective-C süntaks (1997)[muuda | muuda lähteteksti]

Pärast seda, kui NeXT osteti Apple poolt ära, tehti üritusi, et keel oleks aktsepteeritavam programmeerijatele, kes on harjunud rohkem kirjutama Javas kui Smalltalkis. Üks nendest üritustest oli "Kaasaegne süntaks" Objective-C'le. Seal ei olnud muudatusi käitumisele, see oli lihtsalt alternatiivne süntaks. Seda "kaasaegset" süntaksit ei saa kasutada enam tänapäevaste Objective-C dialektidega.

Portable Object Compiler[muuda | muuda lähteteksti]

Teiste Objective-C implementatsioonide kõrval oli veel üks implementatsioon, mida kutsuti Portable Object Compiler'iks. Võrreldes teiste implementatsioonidega omas see Smalltalki moodi plokke, kuid tal puudusid protokollid ja kategooriad. Üleüldiselt oli keel vanamoelisem.

GEOS Objective-C[muuda | muuda lähteteksti]

PC GEOS süsteem kasutab programmeerimiskeelt GEOS Objective-C või goc, olenemata nime sarnasusest on neil Objective-C'ga ühine ainult üleüldine kontseptsioon.

Clang[muuda | muuda lähteteksti]

Clangi kompilaatori pakett on osa LLVM projektist, mis implementeerib Objective-C'd ja teisi keeli.

Viited[muuda | muuda lähteteksti]

  1. Garling, Caleb. "iPhone Coding Language Now World's Third Most Popular". Wired. Retrieved 20 May 2013.
  2. Wentk, Richard (2009). Cocoa: Volume 5 of Developer Reference Apple Developer Series. John Wiley and Sons,. ISBN 0-470-49589-8.
  3. Biancuzzi, Federico; Warden, Shane (2009). Masterminds of Programming. O'Reilly Media, Inc. pp. 242–246. ISBN 0-596-51517-0.
  4. Cox, Brad (1983). "The object oriented pre-compiler: programming Smalltalk 80 methods in C language". ACM SIGPLAN Notices. New York, NY: ACM. 18 (1). doi:10.1145/948093.948095. Retrieved 2011-02-17.
  5. "GNUstep: Introduction". GNUstep developers/GNU Project. Retrieved 2012-07-29.
  6. "Kresten Krab Thorup | LinkedIn". www.linkedin.com. Retrieved 2016-06-23.
  7. Using C++ With Objective-C in Mac OS X Reference Library, last retrieved in 2010-02-10.
  8. "Clang Language Extensions — Clang 3.5 documentation". Clang.llvm.org. Retrieved 2014-04-16.
  9. "Objective-C 2.0: more clues". Lists.apple.com. 2006-08-10. Retrieved 2010-05-30.
  10. Garbage Collection Programming Guide: Garbage Collection API (Apple developer website - search for "__strong")
  11. "Garbage Collection Programming Guide: Introduction to Garbage Collection". Apple Inc. 2011-10-03.
  12. "Transitioning to ARC Release Notes". Apple Inc. 2012-07-17. Retrieved 2012-08-26.
  13. Free Software Foundation, Inc. (2011). "GCC 4.6 Release Series – Changes, New Features, and Fixes". Gcc.gnu.org. Retrieved 2013-11-27.
  14. "Objective-C Literals — Clang 3.5 documentation". Clang.llvm.org. Retrieved 2014-04-16.
  15. "Portable Object Compiler". Users.pandora.be. 1970-01-01. Retrieved 2010-05-30.