Войти
ФлеймФорумПрограммирование

FreePascal(ObjectPascal). Хочу попробовать.

Страницы: 1 2 3 Следующая »
#0
14:38, 13 янв. 2019

Сейчас вспомнил про Паскаль и зачем-то открыл Lazarus с ожиданием увидеть ужасный многооконный интерфейс. Нет! Я когда-то успел все настроить, и моему взору предстало одно целое окно. Как тут не попробовать?
С Паскалем раньше дел вообще не имел, и знаю о нем только то, что вместо {} там begin/end). Хотя ладно, я преуменьшаю свои знания, но совсем чуть-чуть.
Есть какой-то материал для "быстрого въезда" в основы? Я не прошу волшебную статью, после прочтения которой полностью изучу язык, а хочу лишь быстро понять основы и синтаксис, чтобы дальше учиться в процессе.

Диалект в Lazarus выбран по умолчанию - ObjectPascal.


#1
14:43, 13 янв. 2019

Любой учебник по дельфи можно брать, фрипаскаль очень трепетно относится к совместимости с ним.
Единственная серьёзная разница между Lazarus и Embarcadero Delphi для меня пару лет назад было то, что в первом кодировка во всех внутренних кишках всегда используется utf-8. В последнем - как завещал Microsoft - UCS-16 или около того. Всё остальное настолько похоже (при ключах по умолчанию), что разницы не заметил больше.

#2
14:46, 13 янв. 2019

=A=L=X=
Учебник это ясно, а нет какого-то краткого описания основ(синтаксиса)? Мне после C++ очень непривычно.

#3
14:51, 13 янв. 2019

Vlad2001_MFS
> а нет какого-то краткого описания основ(синтаксиса)?

Конечно есть: https://rsdn.org/article/Delphi/Delphi_7_02.xml
Почти что сухая выжимка по всем основам синтаксиса.

#4
14:54, 13 янв. 2019

Vlad2001_MFS
> краткого описания основ(синтаксиса)?

Изображение
#5
(Правка: 14:59) 14:55, 13 янв. 2019

=A=L=X=
О, спасибо!
Сразу вопрос: переменные по среди кода объявлять нельзя, как в Си?

0iStalker
Благодарю, возьму книгу на заметку. Беглый осмотр - вроде хорошо, информации много. Спасибо.

#6
14:58, 13 янв. 2019

Vlad2001_MFS
> переменные по среди кода объявлять нельзя, как в Си?

Нет, паскаль строго декларативен, каждому элементу программы - своё место.

#7
(Правка: 15:08) 14:59, 13 янв. 2019

=A=L=X=
Жаль, придется долго привыкать.

#8
15:03, 13 янв. 2019

Vlad2001_MFS

Кстати, там еще 7-ой дельфи - он как бы расцветом дельфи считается и современные дельфи с ним насквозь совместимы (ну кроме опять таки отказа от кодировки Ansi по умолчанию), но в современных дельфях (и фрипаскале) есть еще одно важное усовершенствовение, которое обязательно знать - дженерики, это то, что выступает в роли замены (но неполной) шаблонов в плюсах, но по большей части нужно для контейнеров.

#9
(Правка: 15:10) 15:10, 13 янв. 2019

=A=L=X=
А есть какие-либо стандарты по оформлению кода, именованию переменных, функций и т.д. и т.п? Или как в Си - как удобно? Надо же сразу правильно привыкать стараться.
И что с производительностью у Паскаля относительно C/C++? По идее должна быть такая, он же тоже без прослоек всяких работает вроде NET или JVM.

#10
15:46, 13 янв. 2019

Vlad2001_MFS
> Или как в Си - как удобно?

В паскале регистр букв неважен, поэтому в паскале стили на эту тему можно даже миксовать по отношению к одной и той же переменной.
Как хочешь делать никто не запрещает. В IDE файлы создаются довольно сильно наполненные дефолтным кодом - можешь перенимать из него стили.
Я так и делаю, только пробелы по своему расставляю.

> И что с производительностью у Паскаля относительно C/C++?

Скорость компиляции в сотни раз больше, но скорость выполнения всё-таки меньше и тут по ситуации. Можно получить и очень значительную разницу в пользу плюсов.
Но т.к. это всё-таки компилятор и не полное говно, то скрипты, конечно, далеко за бортом, а managed-языки всегда можно опустить кивнув на непредсказуемую сборку мусора.
Асмокод всегда можно посмотреть и сравнить, если что.
Вопрос вообще тонкий, т.к. сильно значат и программная модель объектов и всякое другое - изучи язык и лучше будешь видеть.

#11
15:55, 13 янв. 2019

=A=L=X=
> В паскале регистр букв неважен, поэтому в паскале стили на эту тему можно даже
> миксовать по отношению к одной и той же переменной.
О как, интересно.
> В IDE файлы создаются довольно сильно наполненные дефолтным кодом - можешь
> перенимать из него стили.
> Я так и делаю, только пробелы по своему расставляю
Наверное, я поступлю также, спасибо.
=A=L=X=
> Скорость компиляции в сотни раз больше
Это хорошо, модули все-таки.

Спасибо за подробные объяснения, буду разбираться.

#12
16:09, 13 янв. 2019

Vlad2001_MFS
> Сразу вопрос: переменные по среди кода объявлять нельзя, как в Си?
в последней версии можно)
но я пока не рискнул ее использовать. они несколько поменяли передачу аргументов что для ассемблера опасно, и местный "Intellisence" вроде Castallia называется, пока морозится от нововведений. при отладке тоже заметил глюки с позицией исполнения.

#13
(Правка: 17:02) 16:52, 13 янв. 2019

Vlad2001_MFS
> А есть какие-либо стандарты по оформлению кода, именованию переменных, функций
> и т.д. и т.п? Или как в Си - как удобно? Надо же сразу правильно привыкать
> стараться.
Есть, и следовать им очень желательно.

http://edn.embarcadero.com/article/10280

Vlad2001_MFS
> И что с производительностью у Паскаля относительно C/C++
Сказать что то конкретное не получится - зависит от ситуации. Но в большинстве случаев, Delphi не уступает по про-сти крестам. Раньше, в 2006 году пытались засунуть поддержку .NET на манер CLI, но потом от этой идеи быстро отказались.
Алсо, у FPC есть смартлинкер, который умеет стрипать ненужный код(после этапа оптимизатора) из модулей, что позволяет обрезать RTL влоть до 10кб. Таким образом, программы можно даже под DOS писать с tiny моделью(поэтому программы на FPC можно запустить почти где угодно).
Но линкер у FPC гораздо медленнее дельфийского.

#14
17:18, 13 янв. 2019

=A=L=X=
> Но т.к. это всё-таки компилятор и не полное говно, то скрипты, конечно, далеко
> за бортом, а managed-языки всегда можно опустить кивнув на непредсказуемую
> сборку мусора.
Они шланг не прикрутили? Или он похерит скорость компиляции?
Зато с ним скорость программы будет на уровне крестов.

Страницы: 1 2 3 Следующая »
ФлеймФорумПрограммирование