Сметачки програм

Од Википедија, слободната енциклопедија
(Пренасочено од Компјутерска програма)
Прејди на: содржини, барај
Компјутерска програма напишана во објектно-ориентиран стил.

Сметачки програм (исто така програмска опрема, или само една програм или прилог, апликација) е низа од инструкции напишани за вршење на определени задачи со компјутер. [1] Kомпјутерот бара програми за функционира, обично извршување на инструкции на програмата во централниот обработувач. [2] Програмата има извршна форма дека компјутерот може да се користи директно за извршување на инструкции. Истата програма во човечки читлив изворен код, од кои извршнитепрограми се изведени (на пример, составени), им овозможува на програмерот да учи и да ги развие своите алгоритми. Компјутерски изворниот код е често напишан од програмери. Изворниот код е напишан во програмскиот јазик кој обично следи еден од двата главни парадигми: императив или декларатив програмирање. Изворниот код може да се претвори во извршна датотека (понекогаш се нарекува извршна програма или бинарна) од страна на компајлерот, а подоцна и погубен од страна на централната единица за обработка. Алтернативно, сметачки програми може да се изврши со помош на преведувач (интерпретер), или можат да бидат вградени директно во хардверот. Сметачките програми може да се категоризираат по функционални линии: системскиот софтвер и апликативен софтвер. Две или повеќе сметачки програми може да работат истовремено на еден компјутер, процес познат како мултитаскинг.

Програмирање[уреди]

Компјутерско програмирање е итеративен процес на пишување или уредување на изворниот код. Уредување на изворниот код вклучува тестирање, анализа, и рафинирање, а понекогаш и координирање со другите програмери на заедничкa развиенa програма. Човек кој ја практикува оваа вештина е наведен како компјутерски програмер, развивач на софтвер или кодер. Понекогаш долг процес на компјутерско програмирање обично е наведено како развој на софтвер. Терминот софтверското инженерство станува популарен, и процесот се гледа како инженеринг дисциплина.

Парадигми[уреди]

Сметачките програми може да се категоризираат од страна на програмските јазични парадигми што се користи за да ги произведе истите. Двајца од главните парадигми се императив и декларатив. Програми напишани со помош императив јазик особено алгоритмите користење декларации, изрази, и изјави. [3] Двојните изјави се променлива ,име на тип на податоци. На пример: var x: integer; ; Изразот дава вредност. На пример: 2 + 2 дава 4. Конечно, изјавата може да се додели како израз на променлива или употреба на вредноста на променлива за менување контрола на протокот на програмата. На пример: x := 2 + 2; if x = 4 тогаш направи нешто(); Една критика на императив јазици е пропратен ефект на задача, изјава за класа на променливи и се нарекува не-локални променливи . [4] Програми напишани со помош на декларативен јазик особено својствата кои треба да бидат исполнети од страна на излезот. Тие не се определи детално изразени во однос на контрола на протокот на извршувашната машина, но на математички односи меѓу декларираните објекти и нивните својства. Две широки категории на декларативна јазици се функционални јазици и логички јазици. Принципот зад функционални јазици (како Хаскел) е да не дозволите несакани ефекти, што ги прави полесно да се причина за програми како математички функции [4]. Принципот зад логички јазици (како Пролог) е да се дефинира проблемот што треба да се реши -. цел-. и да создаде детално решение за Пролог системот [5] Целта е дефинирана од обезбедување на листа на подцели. Тогаш секој подцел се дефинира преку понатамошно обезбедување на листа на подцели, итн. Ако патот на подцелите не успее да најде решение, тогаш подцелта е грешна и друг пат систематски се бара. Формата во која програмата е создадена може да биде текстуална или визуелна. Во визуелен програмски јазик, елементи се манипулираат графички, наместо текстуално.


Составувањето или интепретација[уреди]

Kомпјутерска програма во форма на човечки читлив програмски јазик се нарекува изворен код. Изворниот код може да се претвори во извршна слика со компајлер или со извршување веднаш со помош на преведувач. Или собрани или интерпретирани програми може да се извршат во серија процес без човечка интеракција, но интерпретираните програми му дозволуваат на корисникот да напишеш команди во една интерактивна сесија. Во овој случај програми се посебни команди, чие извршување се случува последователно, и на тој начин заедно. Кога некој јазик се користи за да даде команди за да софтверска апликација (како shell) се нарекува јазик за скриптирање. Компајлери се користат да се преведе изворниот код од програмскиот јазик во објектниот код или машински код. Објектниот код има потреба од понатамошна обработка за да стане машина код, и машински код е мајчин код ,централната единица за обработка и извршување со машините. Компајлираните сметачки програми најчесто се нарекува извршни, бинарни слики, или едноставно како бинарни датотеки - упатување на бинарен формат на датотека кој се користи за чување на извршниот код. Интерпретирани сметачки програми - во серија или интерактивна сесија - се декодира и потоа веднаш се егзекутира или се декодира во некои ефикасна средно застапеност за понатамошно извршување.BASIC, Perl и Java се примери за веднаш егзекутирани сметачки програми. Алтернативно, Java компјутерските програми се составуваат пред време и се чуваат како независен интерпретиран код наречен bytecode. Bytecode-от потоа се извршува по барање на преведувач кој се нарекува виртуелна машина. Главниот недостаток на преведувачите е дека компјутерските програми работат побавно отколку кога се компајлирани. Кодот на интерпретерот е побавно од пустање на компајлирана верзија, бидејќи преведувачот мора да го декодира секој ред од изворниот код и секој пат таа е вчитана и потоа се извршува на посакуваната акција. Сепак, развој на софтвер може да биде побрзо со помош на преведувач, бидејќи тестирање е итно ,а постепеното компајлирање е испуштено. Друг недостаток на интерпретерот е дека најмалку еден човек мора да бидат присутни на компјутерот за време на компјутерското извршување на програмата. Спротивно на тоа, компајлирана компјутерска програма нема потреба од присуство на човекза време на извршувањето. Нема својства во програмскиот јазика ко бараат изворниот код да бите прецизно да биди компајлиран или интерпретиран. Категоризацијата обично се одразува на најпопуларниот метод на извршување на јазикот. На пример, BASIC се смета за интерпретиран јазик ,а C компајлиран јазик, и покрај постоењето на основните компајлери за BASIC и C интерпретери(преведувачи). Некои системи користат само just-in-time компајлирање при што делови од изворот се компајлираат "on the fly"(во лет) и се чуваат за последователни егзекуции.

Само-прилагодувачки програми[уреди]

Компјутерска програма во извршувањесе третираат нормално како различни форми на податоците со кој програмата работи. Меѓутоа, во некои случаи оваа разлика е нејасна кога компјутерската програмасе модифицира сама. Модифицираната компјутерска програма се последователно извршува како дел од истата програма. Само-прилагодувачкиот код е можност за програми напишани во мачински код, асемблерски јазик, Lisp, C, COBOL, PL / 1, Prolog и го вклучите Javascript-(на eval функција) меѓу другите и JavaScript(eval финкција) меѓу другите.

Извршување и складирање[уреди]

Обично, сметачките програми се чуваат во non-volatile меморија додека директно или индиректно да биде извршена од страна на корисникот на компјутер. По таквото барање, на програмата е натоварена во случаен пристап на меморија, од компјутерска програма наречена оперативен систем, каде што може да се пристапи директно од централниот процесор. Централниот процесор тогаш извршува ‘’’runs’’’(извршување) на програмата, инструкција по инструкција, до крајот на изврчувањето. Програма во извршување се нарекува процес[6] Стопирањето на извршувањето е по нормален пат или по грешка — софтверска или хардверска грешка.

Рачно програмирање[уреди]

Склопки за рачно внесување на Data General Nova 3

Компјутерските програми историски биле рачно внесување на централниот процесор преку прекинувачи. Упатство било застапено од конфигурацијата на вклучување / исклучување поставувања. По поставувањето на конфигурацијата, извршно копчето се притиснува. Овој процес пото се повторува. Сметачките програми, исто така, историски биле рачно внесување преку лента од хартија или punched card(ударни картички). Откако медиумот е внесен, стартната адреса се поставува преку прекинувачи и се притиска извршното копче. [7]

Автоматска програмска генерација[уреди]

Генеративно програмирање е стил на компјутерско програмирањ која создава изворен код преку генерички класи, прототипови, шаблони, аспекти, и код генератори за подобрување на продуктивноста на програмер. Изворниот код е генериран со програмирање алатки како дефиниран процесор или интегриран развој на средината. Најпростиот облик на изворниот код генератор е макро процесор, како на пример Ц препроцесор, кој го заменува моделот во изворниот код, според релативно едноставни правила. Софтвер мотори излезниот изворниот код или makeup код кој истовремено станува влез на друг компјутерски процес. Апликациски сервери се софтвер мотори кои нудат апликации за клиент на компјутерите. На пример, на Wiki е апликационен сервер кој им овозможува на корисниците да изградат динамични содржини составен од статии. Wiki генерира HTML, CSS, Java, и го вклучите Javascript кои потоа се интерпретира од страна на веб прелистувачот.

Истовременото извршување[уреди]

Поврзано: Процес (компјутер) и Мултипроцесирање

Многу оперативни системи за поддршка мултитаскинг кој им овозможува на многу сметачки програми да се појавуваат и да работат истовремено на еден компјутер. Оперативните системи може да работат на повеќе програми преку процесот на планирање - софтвер механизам да се префрли на процесорот меѓу процеси често така што корисниците можат да комуницираат со секоја програма додека е пуштена. [8] Во рамките на хардвер, денешните мултипроцесорски компјутери или компјутери со повеќе јадрени процесори може да ја стартуваат повеќе програми. [9] Еден компјутерска програма може да се пресметива истовремено повеќе од една операција со користење теми или одделни процеси. Мултичитачките процесори се оптимизирани за извршување на повеќе теми ефикасно.

Функционални категории[уреди]

Сметачките програми може да се категоризираат по функционални линии. Главните функционални категории се системски софтвер и апликативен софтвер. Системски софтвер вклучува оперативен систем кој двојки компјутерски хардвери со апликативен софтвер. [10]Целта на оперативниот систем е да обезбеди средина во која апликативен софтвер извршува во удобен и ефикасен начин. [10] Во прилог на оперативен систем, системски софтвер вклучува корисни програми кои им помагаат со управување и адаптација на компјутер. Ако компјутерската програма не е системски софтвер, тогаш тоа е апликативен софтвер. Апликативен софтвер вклучува middleware, кои парови на системскиот софтвер се со кориснички интерфејс. Апликативен софтвер, исто така, вклучува корисни програми кои им помагаат на корисниците да ги решат проблемите на апликациите, како и потребата за сортирање. Понекогаш развојот на [[софтвер|софтверот се гледа како функционална категорија на сопствените, особено во контекст на интеракција на човечкиот компјутер и програмскиот дизајн на јазик. Развојните околини собираат системски софтвер (како што се компајлери и серија на системот за обработка на скриптни јазици) и апликативен софтвер (како што IDEs) за специфична цел на помагање на програмерите кои креираат нови програми.

Видете исто така[уреди]

Референци[уреди]

  1. Stair, Ralph M., et al. (2003). „Principles of Information Systems, Sixth Edition“. Thomson Learning, Inc.. стр. 132. ISBN 0-619-06489-7. 
  2. Silberschatz, Abraham (1994). „Operating System Concepts, Fourth Edition“. Addison-Wesley. стр. 58. ISBN 0-201-50480-4. 
  3. Wilson, Leslie B. (1993). „Comparative Programming Languages, Second Edition“. Addison-Wesley. стр. 75. ISBN 0-201-56885-3. 
  4. 4,0 4,1 Wilson, Leslie B. (1993). „Comparative Programming Languages, Second Edition“. Addison-Wesley. стр. 213. ISBN 0-201-56885-3. 
  5. Wilson, Leslie B. (1993). „Comparative Programming Languages, Second Edition“. Addison-Wesley. стр. 244. ISBN 0-201-56885-3. 
  6. Silberschatz, Abraham (1994). „Operating System Concepts, Fourth Edition“. Addison-Wesley. стр. 97. ISBN 0-201-50480-4. 
  7. Silberschatz, Abraham (1994). „Operating System Concepts, Fourth Edition“. Addison-Wesley. стр. 6. ISBN 0-201-50480-4. 
  8. Silberschatz, Abraham (1994). „Operating System Concepts, Fourth Edition“. Addison-Wesley. стр. 100. ISBN 0-201-50480-9. 
  9. Akhter, Shameem (2006). „Multi-Core Programming“. Richard Bowles (Intel Press). стр. 11–13. ISBN 0-9764832-4-6. 
  10. 10,0 10,1 Silberschatz, Abraham (1994). „Operating System Concepts, Fourth Edition“. Addison-Wesley. стр. 1. ISBN 0-201-50480-4. 

Понатамошно читање[уреди]

  • Knuth, Donald E. (1997). „The Art of Computer Programming, Volume 1, 3rd Edition“. Boston: Addison-Wesley. ISBN 0-201-89683-4. 
  • Knuth, Donald E. (1997). „The Art of Computer Programming, Volume 2, 3rd Edition“. Boston: Addison-Wesley. ISBN 0-201-89684-2. 
  • Knuth, Donald E. (1997). „The Art of Computer Programming, Volume 3, 3rd Edition“. Boston: Addison-Wesley. ISBN 0-201-89685-0. 

Поврзано[уреди]

Наводи[уреди]

Надворешни врски[уреди]