LINUX.ORG.RU

IDE для pascal

 ,


1

3

Привет народ. Взялся за учебник Столярова, за задачки на паскале. Столяров дядька хардкорный, пользует только вим. Но я всё время забываю где из него выход. Порекомендуйте какую-нибудь живую до сих пор DE-шку для Паскаля, с построчным выполнением, дебаггером и прочими свистоперделками для нубов.



Последнее исправление: hobbit (всего исправлений: 1)

Ответ на: комментарий от beastie
Ответ на: комментарий от Johan_helm

Это чего такое?

Ада - язык программирования. GPS - IDE, поддерживает языки: Ada, SPARK, C/C++ и Python.

Если вкратце, то Ада - это язык с очень мощной типизацией, модульностью и с много чем ещё, эдакий современный Паскаль++. В общем на мой взгляд Ада технически во всём лучше Паскаля.

Dr64h ★★★
()
Ответ на: комментарий от seiken

ТурбоПаскаль. К нему комп из музея

Самый ржач: если поискать на веб-архиве книги по турбо-паскаль и турбо-прологу, почти все они будут в категории «books to borrow» т.е. на короткий срок (15 дней), зашифрованы и не читаемы без спец.софта под винду или мак. Хотя книжкам под 30+ лет. Никто не подскажет причину такого феноменального жлобства?

tt
()
Ответ на: комментарий от Dr64h

Самое главное ты забыл написать - зачем всё это очень нишевое хозяйство нужно человеку, изучающему базовые вещи в программировании? Эту рестриктивную систему типов он тысячу раз проклянёт, когда будет делать элементарные операции. И проклянёт недо-IDE, в которой это всё предлагается делать.

seiken ★★★★★
()
Ответ на: комментарий от Dr64h

Предложи альтернативу, где он с этим не столкнётся

Так уже есть Паскаль, зачем выдумывать колесо? Человек читает книгу Столярова не для того, чтобы прямо сейчас какой-то космический эмбеддед разработать, а ради общих знаний и навыков. Вот почему-то, когда приходят новички и задают вопрос на общеобразовательную тему, обязательно появляются кадры со своими Rust, zig, nim, и т.д. и т.п., которые для базового изучения как собаке пятая нога.

seiken ★★★★★
()
Ответ на: комментарий от seiken

На самом деле, всё просто. Если человек изучает специальность, связанную с системными или околосистемными вещами, имеет смысл сразу начинать с C, чтобы понимать такие концепции, как указатели, адресная арифметика, ручное управление памятью.

Если же программирование изучается для общего развития или исключительно для прикладного уровня, нет ничего плохого в Питоне. И в MIT это давно уже поняли, заменив Схему на Питон.

Другое дело, что конкретные книги могут не раскрывать тему достаточно широко или иметь другие огрехи. Но это не значит, что с Паскаля надо прыгать на Аду.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Вот почему-то, когда приходят новички и задают вопрос на общеобразовательную тему, обязательно появляются кадры со своими Rust, zig, nim, и т.д. и т.п., которые для базового изучения как собаке пятая нога.

Так я этого тоже не понимаю, просто на мой взгляд Ада обладает по сути теми же возможностями, но при этом у неё простой Паскале-подобный синтаксис. Через Аду проще освоить разные парадигмы программирование и перейти на вские там C/C++, но это чисто моё мнение.

Если же программирование изучается для общего развития или исключительно для прикладного уровня, нет ничего плохого в Питоне. И в MIT это давно уже поняли, заменив Схему на Питон.

Поменяли шило на мыло.

Dr64h ★★★
()
Ответ на: комментарий от Dr64h

Через Аду проще освоить разные парадигмы программирование и перейти на вские там C/C++, но это чисто моё мнение.

Какие? Функциональщину ни тот, ни другой язык не поддерживают. Модули есть и там, и там. Причём, адовские модули, как более продвинутые и более сложны. ООП есть и там, и там, и ЕМНИП в аде опять таки больше фич. «Стандартные» указатели в Аде скопированные, что как бы добавляет геморроя. Обобщенные типы данных есть в современном Паскале.

Куда ни ткни, для обучения Паскаль проще и понятнее.

Ну и если почитать Библии по Аде от Бернса, довольно быстро становится ясно, что чтение не для нубов, постоянное сравнение с C++, постоянно какие-то детали, которые, если о них не знать заранее из практики, не понятно, зачем вообще нужны, и о чём речь.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Какие? Функциональщину ни тот, ни другой язык не поддерживают.

Все основные там есть, языков с функциональным программирование не так много и они в основном узконаправленные, ты бы ещё спросил, где там декларотивное программирование.

Модули есть и там, и там. Причём, адовские модули, как более продвинутые и более сложны.

Ну вот ты сам сказал, что в Аде модули более продвинутые, а значит с модулями в других языках отчасти разобраться будет проще и пониманием о модульном программировании будет лучше.

ООП есть и там, и там, и ЕМНИП в аде опять таки больше фич

Да, есть, но преподносится как доп. фича, основной упор идёт на структуры/модули, если захочешь можно при желании и ООП изучить.

«Стандартные» указатели в Аде скопированные, что как бы добавляет геморроя.

Не совсем понял о чём речь, в Аде обычно используют праметры с модификаторами доступа вместо указателей, есть и указатели, но опять же новичкам их рекомендуют использовать в последнюю очередь и именно там, где они действительно нужны.

Ну и если почитать Библии по Аде от Бернса, довольно быстро становится ясно, что чтение не для нубов, постоянное сравнение с C++, постоянно какие-то детали, которые, если о них не знать заранее из практики, не понятно, зачем вообще нужны, и о чём речь.

Я не читал этого Бернса, слишком дорогое чтиво, но если у кого возникли такие сложности, есть очень подробно расписанный стандарт языка, человек с такими «сложностями» явно должен осилить его прочитать. Могу предположить сравнивает он с C++, видимов потому что, частично C++ заимствовал некоторые фичи у Ады.

Прочитал твой пост и увидел «по сравнению с С/С++». Но сравнивать надо Паскаль с Адой. На счёт С тоже далеко не везде Ада проще (см. рестриктивные указатели).

Я их не сравнивал, лишь сказал, что прейти с одного на другой проще.

Dr64h ★★★
()
Последнее исправление: Dr64h (всего исправлений: 1)
Ответ на: комментарий от Dr64h

Ну вот ты сам сказал, что в Аде модули более продвинутые, а значит с модулями в других языках отчасти разобраться будет проще и пониманием о модульном программировании будет лучше.

Так не делают, это методически неверно. Начинают с простейшего, а потом усложняют, показывая конкретно, зачем та или ина сложность понадобилась в языке. А не пузырятся прыгнуть выше своего роста, чтобы потом увидеть, как просто прыгать через табуретку.

Да, есть, но преподносится как доп. фича, основной упор идёт на структуры/модули, если захочешь можно при желании и ООП изучить.

Эта сложность как раз излишняя при обучении. Когда и модули и объекты можно параметризировать дискриминантом, появляется куча вопросов, когда что использовать. Можно в отдельном курсе по ООП сравнить его реализацию в разных языках, и взаимодействие с другими фичамм, но не в базовом курсе. В Паскале в этом плане всё просто и прямолинейно.

Я не читал этого Бернса, слишком дорогое чтиво

В местной универской библиотеке оно было, т.к., видимо, один из профессоров фанат Ады. Покупать я бы, конечно, не стал, ибо не пишу на Аде, и не собираюсь. Просто взял почитать, и втянулся.

есть очень подробно расписанный стандарт языка, человек с такими «сложностями» явно должен осилить его прочитать.

Я его читал. Но это точно не для обучения, пусть даже попроще С++, но это всё же больше для разрабов компиляторов.

Могу предположить сравнивает он с C++, видимов потому что, частично C++ заимствовал некоторые фичи у Ады.

Да. Если посмотреть исторически, Ада (кроме модулей и системы типов) как бы догоняла С++, и не во всём догнала. Ссылки идут на аналогии с С++, но частенько прослеживается вполне конкретная критика С++, мол, смотрите, как говённо это сделано в С++, и как грамотно в Аде. Довольно отчётливо видно, что автор пытается «продать» Аду на фоне более популярного С++.

seiken ★★★★★
()
Ответ на: комментарий от vM

По мне так не особо, но всё сильно зависит от ситуации к ситуации, на Паскале тоже может быть сложный код.

with Ada.Text_IO; use Ada.Text_IO;

procedure Hello is
begin
   -- Comment first program
   Put_Line ("Hello, World!");
end Hello;

Dr64h ★★★
()
Ответ на: комментарий от seiken

Да. Если посмотреть исторически, Ада (кроме модулей и системы типов) как бы догоняла С++, и не во всём догнала.

Могу ещё отметить C++ STL

His work on generic programming goes back in time through Ada (1987), Scheme (1986), and Tecton (1981). See his list of contributions (books, articles, talks, and videos): http://www.stepanovpapers.com/. Without him, we would not have had generic programming as we know it and C++ would have been a very different and poorer language.

C++ STL был показан комитету в 1993 году.

Dr64h ★★★
()

DE-шку для Паскаля, с построчным выполнением, дебаггером и прочими свистоперделками для нубов

Ежели DE-шка — IDE, то «для нубов» это DosBox+TP.
Ну то есть как «арена для игрищ с алгоритмикой» вполне решение (чего еще нубу надо, чтоб разобраться, дальше куды или нахер с пляжа).

Lazarus «для нубов» даст чуть больше геморроя для сильно больших возможностей вообще, но не в «построчным выполнением, дебаггером и прочими свистоперделками».

PS. Заходите, если что:
https://www.cyberforum.ru/free-pascal/

bormant ★★★★★
()
Последнее исправление: bormant (всего исправлений: 1)
Ответ на: комментарий от seiken

исторически, Ада (кроме модулей и системы типов) как бы догоняла С++

Исторически, Ада на несколько лет старше c++, и первый стандарт Ады (и национальный, и международный) на несколько лет старше первого стандарта c++.

vM ★★
()
Ответ на: комментарий от MOPKOBKA

Дело не в традициях. Учителя, помимо образовательной функции, выполняют ещё и функцию воспитательную. Нейросеть не сумеет донести до мальчика, что дёргать девочек за косички - плохо, а угощать фисташковым мороженым - хорошо. Ну и школа сама по себе выполняет важную роль в социализации личности. Так что просто заменить школу чатиком - идея сильно так себе.

А вот если говорить о преподавателях, то их, в общем-то, всегда можно было заменить литературой. Другое дело, что качество получаемых знаний, как правило, падало. Но заменить было можно.

Kapusha
()
Ответ на: комментарий от vM

Работа над С++ и рабочие версии появились гораздо раньше первого стандарта. Ада и С++ вплоть до недавнего времени, как минимум, демонстрировали два противоположных вида проектирования. Ада с самой первой версии - от стандарта к реализации, всё изменения продумывались строго в рамках безопасного программирования и только ООП. С++ - наоборот, с самого начала экспериментальный монстр без стандарта, даже полноценного компилятора не было. Совместимость с С, постоянная оглядка на функциональное программирование, постоянное добавление фич. STL появился гораздо раньше адовских дженериков, в 1993г. в аде не было даже ООП, который появился только в Ада95. Ада всю дорогу догоняла С++, за исключением фич, которые были заложены с самого начала (модули и таски с рандеву и проч. синхронизацией). А некоторые фичи плюсов, например, вариадические шаблоны, скорее всего, никогда не появятся в Аде, ибо слишком фривольное обращение с типами.

seiken ★★★★★
()
Ответ на: комментарий от Kapusha

Не знаю, возможно в платных школах Москвы так, но обычно преподаватель это нищук с зарплатой в 20к, который уже давно сошел с ума от старости или от осознания что следующие 40 лет придется сидеть в школе за копейки. Личность в общем крайне плохая, воспитанием занимаются обычно родители в первые годы жизни.

Не стоит забывать, что в школе можно учиться не только от учителя, но и от одноклассников, в России это сразу знание какие виды наркотиков бывают, какие алкогольные напитки топ и где их могут продать школьнику, хотя этому может и учитель научить тоже.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 3)
Ответ на: комментарий от seiken

Работа над С++ и рабочие версии появились гораздо раньше первого стандарта.

Это не отменяет того, что впервые эти языки появились в 1980 (Ада) и в 1985 (С++).

Ада с самой первой версии - от стандарта к реализации, всё изменения продумывались строго в рамках безопасного программирования и только ООП. С++ - наоборот, с самого начала экспериментальный монстр без стандарта, даже полноценного компилятора не было.

Опять же, так как у Ады уже есть мощная система типов, хорошая структуризация и модульность, от идей ООП предпочли отказаться и оставили как доп. фичу. Напротив C++, у которого ООП стало и по сей день остаётся одной из основных возможностей языка.

STL появился гораздо раньше адовских дженериков, в 1993г.

Я уже цитировал, что и когда появилось.

А некоторые фичи плюсов, например, вариадические шаблоны, скорее всего, никогда не появятся в Аде, ибо слишком фривольное обращение с типами.

Не вижу смысла их добавления в такой язык, их и в C/C++ не часто приходится использовать, разви что это может быть полезно для улучшения совместимости при построении C/C++ интерфейсов в Аде.

Dr64h ★★★
()
Ответ на: комментарий от Zhbert

VSCode почти научился ходить и дышать одновременно... но его плугины категорически не умеют в интеграцию уровня того, откуда у него «VS», не переносят одновременный запуск нескольких экземпляров редактора и... жестоко конфликтуют с virtual box за аппаратное ускорение :)

slackwarrior ★★★★★
()
Ответ на: комментарий от Dr64h

Это не отменяет того, что впервые эти языки появились в 1980 (Ада) и в 1985 (С++).

Ada was originally designed by a team led by French computer scientist Jean Ichbiah of Honeywell under contract to the United States Department of Defense (DoD) from 1977 to 1983

а Страуструп начал работу над «С с классами» в 1979г. Ну пусть будет «примерно в одно и то же время». Ещё надо учитывать, что спека 1985г. не является международным стандартом, в отличие от стандартов Ады. Но не суть важно.

Опять же, так как у Ады уже есть мощная система типов, хорошая структуризация и модульность, от идей ООП предпочли отказаться и оставили как доп. фичу. Напротив C++, у которого ООП стало и по сей день остаётся одной из основных возможностей языка.

Вот именно. Страуструпа в первую очередь интересовало модное ООП, и чтобы код был эффективным. У Ады были другие цели. Но под давлением времени и хотелок программистов ООП всё таки добавили. Как и остальные фичи, которые уже давно были в современных языках.

Впрочем, я не очень понимаю смысла данной дискуссии. Изначальный тезис был в том, что вместо Паскаля лучше взять Аду, и я утверждаю, что для новичка это контрпродуктивно из-за ненужной сложности Ады по сравеннию с Паскалем. Сравнение с C++ - это уже другая тема.

Не вижу смысла их добавления в такой язык, их и в C/C++ не часто приходится использовать

здрасьте, приехали… Это одна из киллер-фич современного C++.

seiken ★★★★★
()
Ответ на: комментарий от vM

Даже раньше, чем шаблоны заработали в c++?

На счет дженериков я ошибался, были с самого начала. Но не на счёт стандартной библиотеки контейнеров:

 Ada 2005 adds a comprehensive generic container library to the standard library, which was inspired by C++'s standard template library. 

Т.е. опять таки, вдохновились плюсами. Ну и сравните 2005г. и 1998г.

seiken ★★★★★
()
Ответ на: комментарий от seiken

А сама c++нутая STL чем вдохновилась в 1990-х? ;)

Страуструпа в первую очередь интересовало модное ООП, и чтобы код был эффективным.

Спагетти из виртуальных базовых классов ромбовидным наследованием вместо шаблонов?

В начале 1980-х ООП-бесие ещё не овладело широкими массами.

для новичка это контрпродуктивно из-за ненужной сложности Ады по сравеннию с Паскалем.

Но Андрей Викторович предлагает вместо Паскаля FreePascal, у которого на самом деле только 1 реализация, в отличие от Паскаля. A FreePascal - типичный «универсальный» язык программирования, в который его разработчики пытаются понатаскать всё подряд.

vM ★★
()
Ответ на: комментарий от vM

A FreePascal - типичный «универсальный» язык программирования, в который его разработчики пытаются понатаскать всё подряд.

Для обучения не важно, что в язык «понатаскали». Например, в Джаве дохреллион способов конструирования строк, но по-прежнему можно использовать самый простой, все остальные кушать при этом не просят. Важно, что оно не мешает писать учебные программы, не отвлекает на пляски вокруг системы типов, заумных видов указатели и проч. А в Аде это не просто «понатаскали», а сердце языка.

seiken ★★★★★
()
Ответ на: комментарий от seiken

Для обучения не важно, что в язык «понатаскали»

Для обучения нужно то подмножество языка, которое используется в конкретном учебном курсе.

Если кто-то сумеет вести курс введения в программирование на каком-то учебном подможестве Ады, то это принципиально не хуже, чем введение в программирование на соответствующем учебном подмножестве FreePascal, Pascal.ABC, python’a, АЛГОЛа или ФОРТРАНа.

vM ★★
()
Ответ на: комментарий от vM

Используется. И как раз потому что там другая система типов, нежели в Аде.

Причём, это только один из факторов, сам ЯП. А ещё есть такие вещи, как библиотеки (стандартные), IDE, которые не меньшую роль играют.

Турбо Паскаль не зря стал таким популярным в обучении. С одной стороны, он компилируемый ЯП, и позволяет понять, что такое статическая строгая типизация, что код необходимо компилировать (в отличие от Бейсика), а с другой стороны, это готовая IDE и библиотеки терминального UI, модуль graph. Ничего настолько же простого нет ни в Питоне, ни в плюсах, ни тем более в Фортране. Не говоря о Аде…

seiken ★★★★★
()
Ответ на: комментарий от seiken

Но вводный курс программирования на FORTRAN 77 у них был. При том, что на мейнфреймах был PL/I и нормальный Pascal, и им не пришлось бы, как на писишках выкрутасничать, чтобы обработать в турбопаскалевской программке массив всего-навсего из 10000 чисел двойной точности.

vM ★★
()
Ответ на: комментарий от vM

Но вводный курс программирования на FORTRAN 77 у них был.

Ну знаешь, если 60е взять, то там тоже не было Паскаля.

При том, что на мейнфреймах был PL/I и нормальный Pascal

Какие мейнфреймы, о чём вы, батенька? Уже давно ПК кругом.

seiken ★★★★★
()
Ответ на: комментарий от seiken

И какой там «нормальный» Паскаль был на мейнфреймах? Я щас глянул в инет, ООП в Турбо Паскале появилось в версии 5.5, и это был 1989г. А как там было с графикой на мейнфреймах?

seiken ★★★★★
()
Ответ на: комментарий от seiken

какой там «нормальный» Паскаль был на мейнфреймах?

Был и есть. В котором такая программка работает, если заменить ^ на @ или то, что для компилятора означает изначальный паскалевский ↑.

program o(source,listing);
var source, listing:text;

begin
        reset(source);
        rewrite(listing);
        while not eof(source) do
                begin writeln (listing, source^,'(', ord(source^), ')'); get(source) end;
end.

как там было с графикой на мейнфреймах?

В 1960-х было так, как было с платёжеспособностью у заказчика.

vM ★★
()
Последнее исправление: vM (всего исправлений: 1)