>>> Рассмотрены концептуальные различия между Паскалем и Си.
>> Лолшто? Какие там концептуальные различия?
> Строки. Нну, это хрен знает... Строки -- это мелкий и не очень существенный нюанс, причём даже не совсем нюанс языка, это можно рассматривать как особенность стандартной библиотеки. Хотя в паскале строки запилены на уровне языка со сборкой мусора.
С другой стороны, это и есть пример единственного концептуального отличия паскаля от C: в C есть базовые простые блоки, предназначенные для многократного использования во многих разных ситуациях, для того, чтобы на основе этих блоков строить всё остальное, в том числе и строки, и, например, printf. В pascal'е же, если что-то не строится хорошо на базовых простых блоках, в язык засовывается новый ad hoc блок, и получаются строки со сборкой мусора, и writeln, который вроде как макрос, но макросов в языке нет. И, соответственно, если мне чутка не нравится writeln, и я хочу свой, то я не напишу этот свой никак, разве что патчить компилятор или писать препроцессор к нему. В C же, если мне не хватает в printf спецификаторов для вывода массивов, то я могу запилить их туда, написав printf заново.
Когда Ритчи подумал, что надо как-то сделать удобный вывод в консоль, он запилил в язык эллипсис, и дал возможность написать printf. Когда Вирт подумал, что надо как-то сделать удобный вывод в консоль, он отказался от эллипсиса потому как это плохо, он отказался от макросов, потому как это ещё хуже, и вместо этого он запилил ad hoc костыль -- writeln.
> А так-то и бейсик с си -- императивные языки программирования.
С бейсиком сложно сравнивать, потому что бейсиков много. Если тот бейсик с номерами строк, который на БК-0011, то простите он до уровня C не дотягивает вообще никак. Он больше на ассемблер похож. Если же что-то типа Visual Basic, то там уже во все поля ООП и это опять же другой язык. Был ещё Turbo Basic, его может и можно поставить в один ряд с С -- но я не видел его ни разу.
C++ тоже императивный язык программирования, но они очень разные с C.