Язык программирования имеет какой-то официальный стандарт. От которого можно в той или иной степени отклоняться. А иногда и нужно, чтобы язык не умер, перестав удовлетворять современным технологиям программирования.
Посмотрим на примере такого распространенного языка, как Паскаль.
Никлаус Вирт описал Паскаль в 1970 году. Будучи соавтором разработки языка Algol-68, он взял за основу алголоподобный синтаксис, в то время считавшийся наиболее удачным.
Первая реализация паскаля была сделана под конкретную машину и носила отпечаток требований её операционной системы. Сюда, например, относится требование, чтобы программа начиналась с оператора Program, содержащего указания на файлы ввода и вывода. С распространением паскаля на другие машины нужда в этих указаниях отпала, но некоторые школьные учителя, даже не зная о причинах, до сих пор уверяют учеников, что программа должна начинаться именно с program!
Шло время, программирование не стояло на месте. Возникали новые языки, создавались новые технологии, компьютеры проникали во все новые области. Появились персональные компьютеры. С этого момента Паскаль получил вторую жизнь. Понятный, быстро изучаемый и компилируемый в компактный код, это был отличный язык для "персоналок" с объемом памяти в 640 Кбайт. Но это был уже не тот, прежний Паскаль. Для работы с персоналками понадобилось его существенно дополнить. так возникла интегрированная система (среда) программирования Turbo Pascal. Именно система, потому что она включала компилятор с диалекта (т.е. с некоторой конкретной реализации) языка Паскаль, текстовый редактор, систему отладки, систему справок и поддержку выполнения программы.
Впоследствии возникли другие диалекты Паскаля, такие как входной язык системы Borland Delphi, язык Free Pascal, язык системы Pascal ABC и наконец, среда программирования PascalABC.NET, которая очень далеко ушла от Паскаля Никлауса Вирта, вобрав в себя лучшие черты и средства языков C#, Python и Haskell.
Const Sz = 1000; var a: array [1..Sz] of integer; b: array [1..Sz] of integer; c: array [1..Sz] of integer; d: array [1..Sz] of integer; M: integer; N: integer; i: integer; k: integer;begin read(M); readln(N); for i:=1 to N do begin read(a[i]); readln(b[i]); if (a[i]<>0) then c[i]:=1 else c[i]:=0; end; for i:=1 to N do begin if(c[i]<>0) then begin for k:=1 to i do begin if(d[k]=0) then d[i]:=1; if (c[k]=i) then d[k]:=0; end; writeln(d[i]) end;end;end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку