Я собираю подробную историю языка Паскаль, и мне не хватает нескольких деталей.
Сегодня существует так много возможностей, которые мы считаем само собой разумеющимся. Какие особенности внесли значительный вклад в развитие Паскаля и почему они были значительными?
Я ищу языковые функции, а не платформу или фреймворк. Это как перегрузка операторов или параметры по умолчанию, но не поддержка Linux или новый виджет Rich Text.
Я знаю, что есть несколько разных вариантов Паскаля (Delphi, Free Pascal, Oxygene, Quick Pascal, Apple Pascal и т. Д.), И они представили одни и те же функции в разное время и параллельно. Это хорошо. Я смотрю на язык Паскаль в целом, и когда произошли важные вехи (даты, версии и т. Д.)
Apps
, это просто новый вид клиент-сервер).Ответы:
С языковой исторической точки зрения, вероятно, самым большим вкладом Паскаля была сильная безопасность типов. Эта битва в основном закончена - победа Паскаля - и переломным моментом в индустрии стала Java. Но в течение очень долгого времени, C предпочитал Паскалю люди, которые в значительной степени считали себя взрослыми кодерами: люди хотели свободы манипулировать своими указателями, как если бы они были целыми числами. Практические реализации Паскаля, однако, имели лазейки, как союзы, которые не динамически проверяли дискриминантное поле, или даже имели полномасштабную типизацию указателей до такой степени, что все они были эквивалентны С, но одним из них был Turbo Pascal.
Это и упрощение сложной спецификации ALGOL 68 [1] могут быть отправной точкой.
[1] Попробуйте как- нибудь прочитать отчет ALGOL 68 - это определенно продукт 60-х годов! Один сайт в сети упоминает некоторые из своих странных жаргонов: «автобусный жетон», «невидимые производственные деревья», «первичные окрестности», «кровосмесительные союзы», «понятия», «протонции», «метаноции», «гипернозы», «». паранозы и пр.
источник
Я бы сказал, что двумя наиболее важными движущими силами на протяжении всей истории Паскаля были:
источник
Вам действительно нужно вернуться к истокам - найти историю Никлауса Вирта. Паскаль начал свою жизнь как язык обучения. «Алгоритмы + структуры данных = программы» является хорошей отправной точкой.
В то время Паскаль был намного проще, чем Алгол 68 и PL / 1. В отличие от Fortran4, он требовал структурирования и декларирования, а также строгой безопасности типов (Fortran 77 немного улучшил ситуацию, но вы все равно могли играть ужасно быстро и без потерь). И по сравнению с COBOL он был коротким, простым и простым в написании программ. (Привет мир в 6 строк вместо 600).
Когда он возник, в Pascal были такие вещи, как массивы символов - именно для обработки строк. Вещи улучшились за эти годы.
Если вы действительно хотите углубиться в историю Паскаля, некоторые моменты, которые вы должны учитывать:
Еще в 1980-х годах между Паскалем и С. проходил огромный слаг-фестиваль. В обоих лагерях происходило огромное количество развития и активности.
Как следствие, странные и замечательные вещи, такие как Bliss-32, Algol и PL / 1, в значительной степени исчезли, но их идеи проникли в Паскаль.
РЕДАКТИРОВАТЬ: могут быть упакованы массивы символов, которые придают некоторые особые свойства, но если вы хотите то, что мы теперь знаем как обработку строк, вам нужно вырастить его самостоятельно.
источник
packed array[1..n] of char;
, например, для Read (ln) и Write (ln)Объектно-ориентированные расширения! Object Pascal был самым большим (неофициальным) скачком стандартов с выпуском Delphi (1) в середине 90-х. Трудно выделить только одну, но все ядро объектной модели в целом помогло привести язык к современному состоянию. К сожалению, по сей день он не был превращен в официальный единый унифицированный стандарт, которому должны соответствовать все компиляторы для симметрии кодирования.
К счастью, разработчики проекта Free Pascal довольно приспособлены к функциям, добавленным в Delphi как Borland, так и Embarcadero. RemObjects не так много, но, по крайней мере, он имеет связи с Embarcadero в Delphi Prism, поэтому любое отклонение от стандарта (чтобы сделать язык более .NET-совместимым) было бы хорошо документировано.
источник
virtual
ключевое слово, чтобы сделать их переопределенными подклассами.Только одна или две вещи, которые я помню от использования Pascal давно с MS-DOS:
Turbo Pascal более или менее представил своего рода IDE в 80-х годах (и производительность компиляции значительно выросла по сравнению с UCSD Pascal).
Примерно в середине 90-х Borland изменил название с Turbo на Borland Pascal . В качестве первого шага были введены модули, которые позволили разбить крупные проекты на отдельные блоки компиляции.
Позже они также добавили объектно-ориентированное программирование.
источник
Одним из основных этапов эволюции в Паскале было правильное представление о струнах. В ISO 7185 («Стандартный Паскаль») их не было, что немного смущает. Однако все настоящие программисты нуждались в них, и жизнеспособные реализации Pascal (такие как Borland / Turbo Pascal) действительно предоставили их.
источник
Оглядываясь назад на нововведения языка Delphi Pascal - я бы добавил модель Property, Method, Event (PME) и раздел «Опубликованные» для классов. Это сделало нативный код, простым в использовании и расширило возможности сборки компонентов. Компоненты выполнили обещание Брэда Кокса о программных микросхемах.
источник
Борьба между многими вкусами Паскаля в 80-х и начале 90-х годов.
У вас были Apple Pascal , Microsoft Pascal и QuickPascal , а также Turbo Pascal .
Все так или иначе представили Object Pascal (QuickPascal 1.0 и Turbo Pascal 5.5 примерно в один и тот же период времени). Apple, потому что они требовали этого для своей платформы, Microsoft и Borland, потому что ОО становился «крутым» (вскоре после этого QuickPascal умер, а Turbo Pascal 6.0 добавил разумную структуру ОО, называемую Turbo Vision ).
Руди Велтуис довольно полон на этом в своем сообщении на форуме .
Вы можете скачать образ ISO с DOS 6.22 и несколькими компиляторами DOS Pascal той эпохи .
источник
Я думаю, что введение интерфейсов (в Delphi 3 IIRC) было очень важно, чтобы сделать его современным объектно-ориентированным языком.
источник
Я добавлю анонимные методы и обобщения в смесь.
источник
Новые языковые функции между Delphi 7 и Delphi XE описаны на странице 52 в этом техническом документе Embarcadero:
http://www.embarcadero.com/images/dm/technical-papers/reasons-to-migrate-to-delphi-xe -белый-paper.pdf
источник
Для меня самой большой вещью (после некоторых других языков, таких как C ...) была нечувствительность к регистру и скорость компиляции.
И после этого стало легче писать на финской клавиатуре, потому что мне не нужны постоянно {} или другие труднодоступные клавиши ...
Я был на борту с Delphi2, но пару лет использовал D1 на работе ...
источник
Начните с «Структурного программирования» Дала, Дейкстры и Хоара. Раздел Дейкстры имеет фундаментальное значение даже сегодня. Раздел Тони Хоара о структурировании данных заложил фундамент для PASCAL. (В разделе Даля говорилось о том, что в итоге стало объектно-ориентированным программированием. Он описал, что стало уроками в Simula 67.)
Посмотрите на ALGOL-W, реализацию Вирта варианта ALGOL-60.
Вы также должны знать о PL / I и редакторе связей IBM 360 (компоновщик) в то время. Это было чудо общности, с незначительной проблемой, что она работала медленнее, чем патока в январе в Джуно, Аляска. PASCAL был специально разработан для компиляции и связывания за один проход для скорости. (Это помогло тому, что язык начал жизнь на суперкомпьютере CDC 6400 junior, с большим объемом памяти, что сделало компилятор за один проход практичным.)
На самом деле было две основные версии PASCAL из ETH Zurich. Язык, который каждый в настоящее время знает как PASCAL, на самом деле был PASCAL2, второй версией.
источник