У чым розніца паміж напісаннем праграмы, сцэнарыя або алгарытму?


адказ 1:

Добрае пытанне!

Я размаўляў з аўтарам, які піша кнігі па праграмаванні для дзяцей малодшага ўзросту да К (падключыце рана!) - ці варта больш выкарыстоўваць слова "праграма" альбо "алгарытм"? Як вы дакладна адрозніваеце іх? Калі яны ўзаемазаменныя?

Агульны меркаванне кампутарных навукоўцаў заключаецца ў тым, што алгарытм звычайна спасылаецца на матэматычную абстракцыю праграмы (гэта значыць з памяццю + кампутарнай падкладкай, фізічныя дадзеныя якой "абстрагаваны". Усё, што засталося, гэта структуры дадзеных, такія як звязаныя спісы / масівы і, магчыма, дошка :)

"Праграма" - гэта фізічная рэалізацыя гэтай праграмы - гэта значыць перакладчык Python + сцэнар, які апісвае алгарытм + усе дынамічныя бібліятэкі, якія прадстаўляюцца аперацыйнай сістэмай для падтрымкі выканання гэтай праграмы.

На практыцы ж рэчы крыху размытыя - некаторыя алгарытмы надзвычай характэрныя для асяроддзя, у якім яны працуюць, і "няма" абстрагавацца "ад гэтых дэталяў. Функцыі аперацыйнай сістэмы, якія прадастаўляюць праграмныя структуры дадзеных, сумяшчальныя з вашым "абстрактным" алгарытмам (напрыклад, масівы ST + C ++ супраць звязанага спісу з абстрактнымі алгарытмамі), самі рэалізуюцца з выкарыстаннем іншых алгарытмаў, якія падтрымліваюцца больш абстрактнымі структурамі праграмавання, якія самі алгарытмы. Такім чынам, яны з'яўляюцца алгарытмамі ўніз. Ці ў канцы дня ўсё проста праграма, а алгарытмы - гэта проста матэматычная структура, якая дазваляе нам думаць пра праграмы камфортна, не пацеючы падрабязнасцямі.

Сцэнар - гэта тып праграмы, які звычайна інтэрпрэтуецца, а не кампілюецца (але размоўна не падыходзіць для праграмнага забеспячэння "скрыпт", "аўтаматызаваць" ці "наладзіць", напрыклад, гульнявога рухавіка з выкарыстаннем невялікіх фрагментаў кода C ++ якія складаюцца). . І сучасныя адрозненні паміж інтэрпрэтаванымі і скампіляванымі праграмамі ў любым выпадку размытыя, таму я не думаю, што важна правесці мяжу паміж сцэнарыямі і праграмамі (альбо сцэнарыямі і праграмаваннем).


адказ 2:

Сцэнар сапраўды такі ж, як і праграма, але "сцэнар" азначае, што ён "інтэрпрэтаваны" (гэта значыць аналізуецца і разумеецца падчас яго выканання). Так, я ведаю, што існуюць кампілятары для Javascript і перакладчыкі для .NET IL, таму гэта нейкая невыразная вобласць. Функцыянальна няма розніцы.

Алгарытм - гэта спосаб вырашэння праблемы. Алгарытмы часта рэалізуюцца як праграмы, але таксама могуць быць прадстаўлены ў кнізе альбо прадстаўлены дрэвамі рашэнняў, інструкцыямі, рэцэптамі і г.д.

Вы таксама можаце мець праграму, якая не з'яўляецца алгарытмам. Матэматычная патрэба ў алгарытме заключаецца ў тым, што ён павінен быць завершаны ў абмежаваныя тэрміны. Няўжо кампутар калі-небудзь "замярзаў"? Гэта праграма, якая не рэалізуе алгарытм.


адказ 3:

Сцэнар сапраўды такі ж, як і праграма, але "сцэнар" азначае, што ён "інтэрпрэтаваны" (гэта значыць аналізуецца і разумеецца падчас яго выканання). Так, я ведаю, што існуюць кампілятары для Javascript і перакладчыкі для .NET IL, таму гэта нейкая невыразная вобласць. Функцыянальна няма розніцы.

Алгарытм - гэта спосаб вырашэння праблемы. Алгарытмы часта рэалізуюцца як праграмы, але таксама могуць быць прадстаўлены ў кнізе альбо прадстаўлены дрэвамі рашэнняў, інструкцыямі, рэцэптамі і г.д.

Вы таксама можаце мець праграму, якая не з'яўляецца алгарытмам. Матэматычная патрэба ў алгарытме заключаецца ў тым, што ён павінен быць завершаны ў абмежаваныя тэрміны. Няўжо кампутар калі-небудзь "замярзаў"? Гэта праграма, якая не рэалізуе алгарытм.


адказ 4:

Сцэнар сапраўды такі ж, як і праграма, але "сцэнар" азначае, што ён "інтэрпрэтаваны" (гэта значыць аналізуецца і разумеецца падчас яго выканання). Так, я ведаю, што існуюць кампілятары для Javascript і перакладчыкі для .NET IL, таму гэта нейкая невыразная вобласць. Функцыянальна няма розніцы.

Алгарытм - гэта спосаб вырашэння праблемы. Алгарытмы часта рэалізуюцца як праграмы, але таксама могуць быць прадстаўлены ў кнізе альбо прадстаўлены дрэвамі рашэнняў, інструкцыямі, рэцэптамі і г.д.

Вы таксама можаце мець праграму, якая не з'яўляецца алгарытмам. Матэматычная патрэба ў алгарытме заключаецца ў тым, што ён павінен быць завершаны ў абмежаваныя тэрміны. Няўжо кампутар калі-небудзь "замярзаў"? Гэта праграма, якая не рэалізуе алгарытм.