Korisnik:Vujaniczoran1/prevod2
nesC
[uredi]nesC (izgovara se "NES-si") je programski jezik zasnovan na komponentama, vođen događajima, koji se koristi za pravljenje aplikacija za TinyOS platformu. TinyOS je operativno okruženje dizajnirano da radi na ugrađenim uređajima koji se koriste u distribuiranim bežičnim senzorskim mrežama. nesC je izgrađen kao proširenje programskog jezika C sa komponentama koje su "povezane" zajedno za pokretanje aplikacija na TinyOS-u. Naziv nesC je skraćenica od „mrežni ugrađeni sistemi C“.[1]
Komponente i interfejsi
[uredi]nesC programi su izgrađeni od komponenti, koje su sastavljene („ožičene“) da formiraju čitave programe. Komponente imaju internu konkurentnost u obliku zadataka. Niti kontrole mogu proći u komponentu preko njenih interfejsa. Ove niti su ukorenjene ili u zadatku ili u hardverskom prekidu.
Komponente mogu obezbediti ili koristiti interfejse. Obezbeđeni interfejsi su namenjeni da predstavljaju funkcionalnost koju komponenta pruža svom korisniku, korišćeni interfejsi predstavljaju funkcionalnost koja je komponenta potrebna za obavljanje svog posla.
U nesC-u, interfejsi su dvosmerni: oni specificiraju skup funkcija koje će implementirati provajder interfejsa (komande) i skup koji će implementirati korisnik interfejsa (događaji). Ovo omogućava da jedan interfejs predstavlja složenu interakciju između komponenti (npr. registracija interesovanja za neki događaj, nakon čega sledi povratni poziv kada se taj događaj desi). Ovo je kritično jer sve dugačke komande u TinyOS-u (npr. pošaljite paket) ne blokiraju; njihov završetak se signalizira kroz događaj(poslati urađeno). Određivanjem interfejsa, komponenta ne može pozvati naredbu poslato osim ako ne obezbedi implementaciju poslatoUrađeno događaja. Obično se komande pozivaju naniže, tj. od komponenti aplikacije ka onima koje su bliže hardveru, dok događaji pozivaju nagore. Određeni primitivni događaji su vezani za hardverske prekide.
Komponente su statički povezane jedna sa drugom preko svojih interfejsa. Ovo povećava efikasnost vremena rada, podstiče robustan dizajn i omogućava bolju statičku analizu programa.
Reference
[uredi]- ↑ 1 Gay, David; Levis, Phill; von Behren, Rob; Welsh, Matt; Brewer, Eric; Culler, David (2003). „nesC jezik: holistički pristup umreženim ugrađenim sistemima“. SIGPLAN obaveštenja. 38 (5). Udruženje za računarske mašine: 1–11. doi:10.1145/780822.781133. ISSN 0362-1340.