LINUX.ORG.RU

Релиз 2.2.4 свободного компилятора Free Pascal

 ,


0

0

На радость школьникам и студентам 12 апреля, в День Космонавтики, вышел новый стабильный релиз свободного компилятора языка программирования Free Pascal, который считается средством разработки кросс-платформенных приложений.

Страница для загрузки

В основном эта версия посвящена исправлению ошибок.
Список изменений, которые могут повлиять на уже существующие проекты
Логи изменений в Subversion

>>> Сайт проекта

★★★★★

Проверено: svu ()

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

>Да, и учитывая наличия и пропроцессора современный fpc, видимо, можно использовать как strange-looking С при обучении, согласен.

Чем наличие препроцессоров облегчает обучаемость? Их наличие только ломает структуру языка.

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

>Аналог в каком-то смысле. Но несколько более высокого уровня, что сужает область его применения.

Передается адрес переменной указанного типа, не выше и не ниже. Чего сужается?

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

Кстати, я бы С УДОВОЛЬСТВИЕМ отдал те просранные годы, которые я тратил на изучение С/С++, на изучение Ruby или Ocaml

impfp
()
Ответ на: комментарий от madcore

>Передается адрес переменной указанного типа, не выше и не ниже. Чего сужается?

Блин, вот я и спрашивал в прошлом сообщении: является ли подобный способ передачи аргумента в pascal (var your_variable) "указательным" или это всё же передача по ссылке (ByRef в BASIC и & в C++)?

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

>Спасибо. Всё же придётся поставить fp и самому убедиться, т.к. показания расходятся :))

Да какие показания, в терминах паскаля это pointer, который является адресом.

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

Ну а что хочется выяснить? Насколько знаю код void f(struc* t); и void g(struc& t); по смыслу эквивалентен, ну будут синтаксические различия в способе доступа к элементам struc, и, возможно какие-то тонкости с выделением памяти/оптимизацияим, имхо.

В паскале такой момент отсутствует, и потому используется только: procedure f(var t: struc); хотя, конечно, можно и: procedure g(t: pstruc); // type pstruc = ^struc; или procedure g(t: pointer); но в последнем случае будет отсутствовать проверка типов параметров.

impfp
()
Ответ на: комментарий от madcore

Наверное, он это имел в виду.

C: void f(int* x); // параметр = значение указателя на x Pascal: procedure f(x: pint); C: void f(int& x); // параметр = значение x Pascal: void f(var x: int);

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

передача аргументов с var в паскале аналогична & в с++ и byref в vb только & в c++ это ссылочный тип, можно создавать переменные этого типа и присваивание таким переменным приводит к присвоению ссылки на присваиваемую переменную, передача переменной через ссылку -к передаче указателя

unkn55
()
Ответ на: комментарий от Orlusha

> Там о переходе на fp даже не мечтают. Студенты воют нечеловеческими голосами: под вистой и тем более семёркой графика BGI не работает...

по идее в dosbox должно работать.

ZV
()
Ответ на: комментарий от hobbit

> Паскалененавистник детектед.

Ну не совсем... Я начинал с паскаля еще в школе, затем дельфи... :) Потом познал что такое Си и Си++ и сменил веру, ибо количество библиотек, программ, тулкитов, фреймворков на Си++ гораздо больше чем на паскале => вопрос выбора языка так и решился...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Flaming

> Я пытался изучать C/C++ (чисто из интереса) он сцуко тупо сложный для первого языка. Слишком долго нужно синтаксис изучать прежде чем начинать изучать собственно программирование.

Есть куча книжек типа "освой Си++ за 21 день" - у меня не хватило терпения, я освоил за неделю ;) Ну а Си так вообще детский... ^_^

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от sv75

>> Нет "хороших" или "плохих" языков. Бывают хорошие или плохие прогеры. 8))

>"... и скачет не лошадь, а жокей!"

И винда дырявая потому что ее юзеры - домохозяйки с хроническим рукожопием :D

MMouXe
()
Ответ на: комментарий от Joy_Nix

> Уже давно убрать паскаль с учебной программы нужно.

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

Простите за оффтоп, можно и дельфям учить, чтобы такие же "быстрые" программки царапать. Но, имхо, при хорошем знании языка (любого), программки можно нацарапать везде.

Vest
()
Ответ на: комментарий от I-Love-Microsoft

Я не говорю, что C++ ППЦ как сложный. Он вполне адекватный, понятный, сделал людьми для людей. Но школьникам его изучать точно рановато. Тем более большинство из них не будет связывать свою жизнь с программированием, часть вообще не будет связывать жизнь с компьютером. Им программирование чисто для общего развития, чтобы моск не простаивал.

Я с C++ знаком, кое-какие проги даже писал, консольные, могу и на билдере что-то сбацать. Но на более сложное, например, qt4, меня пока не хватило. Времени нет по-изучать.

Для школьников определённо нужно что-то попроще.

> Ну а Си так вообще детский... ^_^

Это намёк на то, что C проще C++? Ну, устроен он проще, но это не значит, что на нём проще кодить. Скорее наоборот. Там нет векторов, списков, нормальных строк и прочих удобных штуковин... Всё реализуемо, но сложнее.

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

> А вот С++ лучше сейчас вообще не трогать.

Эээ, а почему? Разве qt4, к примеру, не с ним работает? А что с C сделаешь?

А вообще надо изучать java и C#. Нет, у меня нет никакой симпатии к этим языкам (упаси Патрег), я с ними даже не знаком, просто они сейчас довольно сильно востребованы, а кушать-то хочется.

Flaming ★★
()

Сколько тут хаятелей Pascal-а и любителей C. А можно посмотреть на ваш рабочий, безопасный код на C? Писать на нём умеют единицы из миллионов.
А уж безопасно писать и того меньше. Достаточно посмотреть на основную составляющую всех мировых проблем ПО.
Любители C в состоянии перечислить тут неоспоримые преимущества C, из-за которых его стоит использовать на прикладном уровне? Качество современного ПО достаточно убедительно показывает, что этих преимуществ практически нет.
И на Pascal-е некоторые могут в одиночку написать то, что другие целой командой за 14 лет написать не могут (подсказка: http://en.wikipedia.org/wiki/Pixel_image_editor и http://en.wikipedia.org/wiki/GIMP)
И создать такие проблемы в Pascal, с которыми ежедневно сталкиваются пейсатели на Цэ, - это еще постараться надо.

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

Дааа ушшш... Основной предмет неприязни паскаля, как правило, состоит из 3х разнородных пунктов: - Совсем ламеры хают его синтаксис. - Средней руки программисты (коих большинство) вспоминают поколение дельфистов (и совершенно справедливо!) - формошлепов, и все что с этим феноменом связано. - Специалисты в первую очередь указывают на императивность и архитектурные особенности, не позволяющие использовать его довольно широко, как, напирмер, традиционную 1-проходность компилятора.

Хе, а с другой стороны С-стайл "в упор" не желают видеть таких же очевидных достоинств: - несколько более высокий уровань абстракции (строки, множества) - куда более простой синтаксис языка, но все еще дающий эффективно пользоваться как минимум двумя парадигмами: процедурно, и объектно-ориентированно (так же на примере Freepascal довольно-таки постепенно появляется и третья парадигма: шаблоны).

impfp
()
Ответ на: комментарий от I-Love-Microsoft

>Есть куча книжек типа "освой Си++ за 21 день" - у меня не хватило терпения, я освоил за неделю ;)

Это не знание, а иллюзия знания. C++ --- один из самых сложных (если не самый сложный) языков, мне известных.

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

судя по лазарусу 100 человек 10 лет не могут асилить что-то стоящее. на паскале софта нет и слава патрегу никогда не будет, и это многое объясняет. а по первой ссылке полнейший фекалий.

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

>а кому это интересно в линуксе? а так fp и лазарус настолько глючные поделия, что ими просто невозможно пользоваться человеку с нормальной психикиой.

4.2 В каком месте глючит fp?

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

>зачем вообще нужен Паскаль?

не поверишь - чтоб программировать.

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

>в freepascal паршивая и медленная графика, BGI лучше, хоть и под ДОС. вывод на консоль ужасно медленный, а скорее всего код неэффективный генерится.

вот отсюда можно не продолжать. Ты просто не в теме. Или паскаль со времен ТP7 не видел.

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

>а вот слабо в FPC на платформе Win32 сделать сборку под Linux/FreeBSD/ARM?

не слабо.

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

>Я как-то люто торможу. Почему оно так? Я как-то думал, должно быть -2 -1 0 1 2 3

неправильно думал.

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

>если в проекте 200 модулей, то в секция uses может разрастись до немыслимых размеров и ради чего все это? остается пихать все в один модуль?

а в C по другому чтоли будет?

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

>Зачем добавили в модули инциализационную и денинициализационную части?

а что, мешает? ИМХО очень удобно бывает.

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

>аааааааааааааа! в новой версии Свободного Паскаля до сих пор не сделано округление! бедные школьники! сколько будет слез, сколько нервов,...

Пройдите сюда, пожалуйста, ламерок ты наш.

http://bugs.freepascal.org/view.php?id=12687

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

>Пройдите сюда, пожалуйста, ламерок ты наш. Не пройдет - он стал слишком толст :)

impfp
()
Ответ на: комментарий от sv75

>1) как на Паскале красиво и эффективно выделять память под матрицы, и чтобы менять в них строки только меняя два указателя местами?

Да прочти же наконец fucking manual. Или тебе так просто, потроллить?

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

>Да, где-то в конце 90-ых там появилась такая же как в Си адресная арифметика. Правда, writeln(p) так и не работает (проверил в FP). Там уже есть (очевидная) операция сложения указателя и целого числа?

Ты перед тем, как метанировать почитал бы доки к fpc.

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

1) Ну например, практически так же как и в Си 2) Вот именно так как в list/queue - никак, fpc _покамест_ таких изворотов с шаблонами не имеет. А так - Classes вполне себе замена.

impfp
()
Ответ на: комментарий от Tu3eK

>судя по лазарусу 100 человек 10 лет не могут асилить что-то стоящее. >на паскале софта нет и слава патрегу никогда не будет, и это многое
Древний спор не хочется даже начинать ,в vingrad.ru в религиозной войне кто то привел очень большой список неплохих програм на делфи
и фрипаскале ,пусть и не 100 % написано на этих языках но значительная часть приложений в этих примерах на нем .
Что меня поразило игра Космические ренжеры оказывается писались на делфи .Ну а сколько закрытых внутрикорпаративных продуктов один бог знает .
Знаю только то что центр мониторинга за судами использует базу данных еще
с БП 7 - > Kulix-(1,2,3) -> фрипаскаль (лазариус) .

maximnik0 ★★
()

микроэтюд

// как эту функцию реализовать на Си?
function f(m: integer): integer;
var t: integer;
    function h(p: integer): integer;
    begin
         if p > 0 then
             h := h(p - t) + f(p - t)
         else
             h := t;
    end;
begin
    t := m div 2 + 1;
    if m > 0 then
        f := h(m) + f(m - 1)
    else
        f := -1;
end;
 

impfp
()
Ответ на: комментарий от sv75

Кажется, все обсуждают паскаль по воспоминаниям детства. У кого-то они хорошие, у кого-то плохие.

>Там уже есть (очевидная) операция сложения указателя и целого числа?

Работа с указателями в языках Free Pascal и Си практически одинакова.

var p1,p2 : ^Longint; 
L : Longint; 
begin 
 P1 := @P2; 
 P2 := @L; 
 L := P1-P2; 
 P1 := P1-4; 
 P2 := P2+4; 
end. 

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

>Что меня поразило игра Космические ренжеры оказывается писались на делфи

Age of Wonders еще (хотя там фиг знает, может и билдер, но бплки присутствуют)

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

>Что меня поразило игра Космические ренжеры оказывается писались на делфи

Создатель космических рейнджеров 1 до самих рейнжеров был известен по игрушке "генерал", абсолютно формошлёп-дельфи-стайл. Без всякой графики, одна форма. Вся игра фактически была прописана в разнообразные Button8.Click() или как там в дельфи.

Place-des-Arts
()
Ответ на: комментарий от Place-des-Arts

>Вся игра фактически была прописана в разнообразные Button8.Click() или как там в дельфи.

Срочно к диетологу!

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

> в новой версии Свободного Паскаля до сих пор не сделано округление!

нет, но тепреь оно сделано таким образом, чтобы "Reason: Compatibility with TP/Delphi.".

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

http://home.datacomm.ch/t_wolf/tw/c/c9x_changes.html (интересно, как это переправили в своё время в Си, п. 25)

Vest
()
Ответ на: комментарий от KRoN73

>Я попал в 1994-й год? :)

Благодаря российской школе у нас не будет других годов кроме 1994. Недавно в другом месте поспорил с педагогом-организатором олимпиад по программированию. Меня возмутил список того, в чём можно сдавать работы: VC 2005, Borland C/C++ 3.1, Delphi. В итоге он объявил меня быдлокодером и сказал что не будет со мной больше разговаривать. Параллельно ему поддакивало 5 его учеников. Растёт смена.

Place-des-Arts
()
Ответ на: комментарий от Place-des-Arts

>А что я такого сказал?

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

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

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

Для математического округления и взятия целой части есть разные функции.

>http://home.datacomm.ch/t_wolf/tw/c/c9x_changes.html (интересно, как это переправили в своё время в Си, п. 25)


Там вообще про целочисленное деление и остатки.

madcore ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.