Съществуват и активно се използват много езици за програмиране (ЕП).
Те се различават по предназначение и област на употреба, по преобладаващия стил на изразяване – например команден или декларативен, обектноориентиран и пр., по обема и вида (компилатор, интерпретатор или друго) на реализацията си и по още редица други свойства.
Тези разлики често са достатъчни, за да изберем за дадена работа даден език сред останалите.
| |
Понякога обаче искаме да добием бърза и нагледна представа за външния вид и пригодността на един или друг ЕП.
Тогава споменатите формални разлики остават на заден план, а вместо тях за оценка на език или сравнение между няколко си служим с конкретни програми – решения на дадена задача.
По-долу съм привел решения на трийсет и един ЕП на много проста, но не съвсем тривиална задача, която е в основата на много други, често и естествено възникващи в практиката.
В първата група са „системни“ езици, в следващата – т.нар. динамични и командният bash, а в последната – функционални езици.
Всички решения са цялостни, завършени програми, а не просто откъси.
| |
Задачата се състои в това да се прочете от т.нар. стандартен вход (терминал, конзола) и отпечата на стандартния изход един ред.
Не е важно дали прочетеният ред изрично се запомня в някакъв вид или направо се отпечатва, но програмата не бива да налага ограничение за дължината му.
Това прави задачата нетривиална, защото някои ЕП нямат средство за образуване или четене на неопределено дълъг низ, а в други такова средство съществува, но е неочевидно или използването му не е много просто.
|