Корисник:Vujaniczoran1/превод2
nesC
[уреди]nesC (изговара се "НЕС-си") је програмски језик заснован на компонентама, вођен догађајима, који се користи за прављење апликација за TinyOS платформу. TinyOS је оперативно окружење дизајнирано да ради на уграђеним уређајима који се користе у дистрибуираним бежичним сензорским мрежама. nesC је изграђен као проширење програмског језика C са компонентама које су "повезане" заједно за покретање апликација на TinyOS-у. Назив несЦ је скраћеница од „мрежни уграђени системи C“.[1]
Компоненте и интерфејси
[уреди]nesC програми су изграђени од компоненти, које су састављене („ожичене“) да формирају читаве програме. Компоненте имају интерну конкурентност у облику задатака. Нити контроле могу проћи у компоненту преко њених интерфејса. Ове нити су укорењене или у задатку или у хардверском прекиду.
Компоненте могу обезбедити или користити интерфејсе. Обезбеђени интерфејси су намењени да представљају функционалност коју компонента пружа свом кориснику, коришћени интерфејси представљају функционалност која је компонента потребна за обављање свог посла.
У nesC-у, интерфејси су двосмерни: они специфицирају скуп функција које ће имплементирати провајдер интерфејса (команде) и скуп који ће имплементирати корисник интерфејса (догађаји). Ово омогућава да један интерфејс представља сложену интеракцију између компоненти (нпр. регистрација интересовања за неки догађај, након чега следи повратни позив када се тај догађај деси). Ово је критично јер све дугачке команде у TinyOS-у (нпр. пошаљите пакет) не блокирају; њихов завршетак се сигнализира кроз догађај(послати урађено). Одређивањем интерфејса, компонента не може позвати наредбу послато осим ако не обезбеди имплементацију послатоУрађено догађаја. Обично се команде позивају наниже, тј. од компоненти апликације ка онима које су ближе хардверу, док догађаји позивају нагоре. Одређени примитивни догађаји су везани за хардверске прекиде.
Компоненте су статички повезане једна са другом преко својих интерфејса. Ово повећава ефикасност времена рада, подстиче робустан дизајн и омогућава бољу статичку анализу програма.
Референце
[уреди]- ↑ 1 Gay, David; Levis, Phill; von Behren, Rob; Welsh, Matt; Brewer, Eric; Culler, David (2003). „nesC језик: холистички приступ умреженим уграђеним системима“. SIGPLAN обавештења. 38 (5). Удружење за рачунарске машине: 1–11. doi:10.1145/780822.781133. ISSN 0362-1340.