массивы в языке сила

1. СРАВНЕНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ СИ И ПАСКАЛЬ
Правильная ссылка на эту страницу
http://azdesign.ru/Support/SoftWare/Delphi/Pascal/001b1001.shtml
1. СРАВНЕНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ СИ И ПАСКАЛЬ
А.Фъюэр, Н.Джехани
1{Фирма Bell Laboratories, Марри-Хилл, США}
Границы моего языка - это границы моего мира.
Людвиг Виттгенштейн
1.1. ВВЕДЕНИЕ
Популярность языков Си и Паскаль быстро растет. Несмотря на то, что они были созданы с изначальной ориентацией на несовпадающие области применения, оба они используются в настоящее время для решения сходных задач. Данная статья представляет собой обзор и сравнение двух языков программирования, в результате проведения которого появляется возможность сделать выбор в пользу одного из них в зависимости от того, к какой области применения принадлежит решаемая задача.
При сравнении языков Си и Паскаль мы столкнулись с проблемой, что же собственно подвергать сравнению, поскольку для каждого из этих языков программирования невозможно однозначно ответить на вопрос: что собой представляет язык программирования и его окружение? Недостаточно сказать, что каждый из этих языков программирования определяется соответствующим описанием, поскольку их разработчики придерживались различной философии в отношении того, что входит, а что не входит в язык программирования. Например, ввод-вывод считается частью языка Паскаль и его описание содержится в описании языка
1 {Описанию языка Паскаль посвящена ч.II книги [ 91]}. В то же время ввод-вывод не считается частью языка Си, а определяется стандартной библиотекой и поэтому не входит в описание языка
2 {Описанием языка Си считается приложение к книге [ 101]};
3 {В настоящее время комитетом X3J 11 ANSI разработан проект стандарта на язык Си [ Д9], вошедший в качестве составной части в [ Д10]. - Прим. ред.}.
Мы разрешили эту проблему, перейдя к сравнению совокупности языков программирования и их окружений. При этом в качестве описания языка Си мы использовали [ 101], а в качестве описания языка Паскаль — [ 91]. В процессе работы мы обнаружили ряд полезных особенностей, которые уже включены в рассматриваемые языки программирования, но не нашли еще своего отражения в их описаниях.
Настоящая статья построена по следующей схеме. Сначала обсуждается история создания и философия, положенная в основу каждого из сравниваемых языков программирования. Затем приводится пример одной и той же программы, написанной на каждом из этих языков программирования, и приводится сравнение особенностей каждого из них. В заключение проводится анализ возможности использования сравниваемых языков программирования для различных областей применения.

1.2. ПРЕДПОСЫЛКИ
Программы, написанные на языке Паскаль, отличаются большей надежностью, чем программы, написанные на языке Си. Основной причиной этого является сильная типизация в языке Паскаль, а кроме того, наличие в языке Паскаль более богатого набора типов данных. Это, в свою очередь, обеспечивает "удобочитаемость" и более высокую мобильность программ, написанных на языке Паскаль, по сравнению с программами, написанными на языке Си. Однако в силу своей гибкости и отсутствия ряда ограничений язык Си обеспечивает возможность использования его в более широком спектре областей применения.
Были определены недостатки каждого из сравниваемых языков программирования. Развитие языка Паскаль шло по пути его расширения с целью дальнейшего расширения сферы применения, а развитие языка Си шло по пути повышения его надежности и улучшения средств диагностики ошибок за счет усиления типизации в нем (о чем свидетельствует, в частности, входной язык Мобильного Транслятора с языка Си
4 {Входной язык Мобильного Транслятора с языка Си [ 92] является подмножеством языка Си с усиленной типизацией.}).
1.3. ИСТОРИЯ СОЗДАНИЯ И РАЗВИТИЯ ЯЗЫКОВ Си И ПАСКАЛЬ И ФИЛОСОФИЯ КАЖДОГО ИЗ НИХ
Языки Си и Паскаль являются относительно маленькими языками программирования. По сравнению с другими языками программирования, разработанными в конце 60-х гг., такими, например, как языки ПЛ/1 [ 87] и Алгол 68 [ 159], языки Си и Паскаль имеют ряд новых особенностей, которые легко могут быть реализованы на мини-ЭВМ.
Язык Си является результатом эволюционного развития языков BCPL [ 131] и Би [ 94], использовавшихся для реализации операционных систем и языковых процессоров. Поскольку модель языка программирования, положенная в основу каждого из них, легко и эффективно отображается на архитектуру существующих аппаратных средств, эти языки программирования обеспечивают программисту эффективный интерфейс с аппаратными средствами. Основным достоинством языка Си по сравнению с языками BCPL и Би является введение в него типов данных.
Язык Си был разработан и реализован Д.Ритчи в 1972г., использовался в самых различных приложениях, в основном под управлением операционной системы UNIX, реализованной изначально для мини-ЭВМ семейства PDP-11. В 1977г. была начата работа по созданию машинно-независимой версии транслятора с языка Си с целью облегчить его перенос в новые окружения. Эта работа завершилась созданием Мобильного Транслятора с языка Си [ 92]. Результатом этого явилось появление.совместимых по входному языку трансляторов с языка Си для 15 различных типов ЭВМ — от микроЭВМ до больших ЭВМ. В ходе работ по созданию Мобильного Транслятора с языка Си сам он был переработан для повышения мобильности написанных на нем программ.

Существенное влияние на язык Паскаль оказали языки программирования Алгол 60 [ 124] и Алгол W [ 185]. Язык Паскаль был разработан Н.Виртом в 1969г. как ответ на большие размер и сложность языка Алгол 68 [ 159]. По мнению Н.Вирта [ 183] язык Паскаль должен быть языком программирования высокого уровня, который:
1. Позволяет систематически и точно выражать концепции и структуры программирования;
2. Позволяет осуществлять разработку программ систематически;
3. Показывает, что язык программирования с богатым набором гибких структур данных и управляющих конструкций может быть реализован эффективно;
4. Показывает, что использование машинно-независимого языка программирования с гибкими структурами данных и управляющими конструкциями для реализации трансляторов с различных языков программирования приводит к повышению "удобочитаемости", верифицируемости и, соответственно, надежности без потерь в эффективности;
5. Способствует улучшению понимания методов организации больших программ и методов управления программистскими проектами;
6. Имеет развитые средства диагностики ошибок и по этой причине является удобным средством для обучения программированию.
Язык Паскаль фактически реализует для пользователя виртуальную машину высокого уровня, называемую Паскаль-машиной. За счет усиления языковых ограничений язык Паскаль существенно затрудняет пользователю выход за пределы виртуальной Паскаль-машины высокого уровня с целью использования непосредственно аппаратуры, на которой базируется эта виртуальная Паскаль-машина.
Первый транслятор с языка Паскаль был реализован для больших ЭВМ семейства CDC-6000. Первоначально язык Паскаль получил распространение преимущественно в университетах. В дальнейшем по мере появления трансляторов с языка Паскаль для других типов ЭВМ (в настоящее время существуют трансляторы с языка Паскаль для более чем 75 типов ЭВМ) использование этого языка программирования стало расширяться с поразительной скоростью. Стали появляться различные расширения языка Паскаль, некоторые из которых приобрели широкую известность и завоевали симпатии многих программистов. Среди наиболее популярных расширений языка Паскаль можно назвать языки Параллельный Паскаль [ 24] и UCSD Паскаль [ 22]
1 {UCSD (University of California, San Diego) - Университет шт. Калифорния (США), г.Сан-Диего.- Прим. ред.}. Был предложен международный стандарт на язык Паскаль [ 139]. Наконец, необходимо отметить, что язык Паскаль, оказал существенное влияние на разработку ряда современных языкор программирования. Особенно существенным было его влияние на язык Ада [ 154].
Цели, преследовавшиеся при разработке языков Си и Паскаль, сильно отличались друг от друга.
Ограничения, введенные в язык Паскаль, должны были способствовать разработке надежных программ путем навязывания определенной дисциплины. Принуждая следовать введенным в него ограничениям, язык Паскаль оказывает существенную помощь программисту в выявлении ошибок в программе и сильно усложняет доступ (по ошибке или преднамеренный) к ячейкам памяти вне области данных программы.
В противоположность этому вседозволенность в языке Си является следствием желания расширить как можно больше область его применения. Язык Си удалось сделать относительно маленьким языком программирования за счет того, что в его состав не были включены ввод-вывод и средства для работы со строками. Язык Си был задуман настолько гибким, что эти возможности могли быть реализованы в каждом конкретном случае наиболее удачным образом. Практический опыт использования языка Си показал правильность такого подхода. Большая часть операционной системы UNIX и все утилиты этой операционной системы (включая и несколько трансляторов с языка Паскаль) реализованы на языке Си
2 {Это не совсем так, поскольку ряд утилит операционной системы UNIX реализован,например, на командном языке shell. - Прим. ред.}.
Точное и полное описание языка программирования необходимо и для программистов, использующих его, и для разработчиков трансляторов с этого языка программирования. Без точного и полного описания языка программирования невозможно доказать правильность программ. Точное и полное описание синтаксиса языка Паскаль было доступно с момента создания этого языка программирования [ 182], а в 1973г. Ч.Хоор и Н.Вирт создали аксиоматическое описание для большей части семантики языка Паскаль [ 81]. Полное описание синтаксиса языка Си не опубликовано до сих пор
1 {Авторы не ссылаются на работы [ Д1, Д2], в которых предпринята попытка описания синтаксиса языка программирования Си. - Прим. ред.}. В 1980 г. Р.Сети создал денотационное описание для большей части семантики языка Си [ 140]. В отличие от аксиоматическог

массивы в языке синайский

массивы в языке си примеры

7. МАССИВЫ ЯЗЫКА C#. Массив задает способ организации данных.  В языке C# снято существенное ограничение языка C++ на статичность массивов. Массивы в языке C# являются настоящими динамическими массивами.

Читать

массивы в языке синоптик

Вторая половина задач - это ответы на некоторые задания к курсу "Особенности языка C". В последнем примере "Указатели и массивы" демонстрируются особенности указателей.