LINUX.ORG.RU

Free Pascal 2.0


0

0

15 мая 2005 года, после 5 лет разработки вышел Free Pascal 2.0.

Поддерживаются следующие процессоры (AMD-64, SPARC, PPC (32/64 бит), ARM) и платформы (Mac OS classic, Mac OS X, MorphOS, and Novell Netware). Среди улучшений: большая совместимость с Delphi, поддержка widestrings, обновление компонент для доступа к базам данных, добавление документации и консольного IDE.

>>> Подробности

★★★★★

Проверено: Shaman007 ()
Ответ на: комментарий от ukez

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

Особенности структур данных -- на лиспе, на асме -- их представление в памяти. Ни в коем случае не наоборот.

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

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

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

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

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

> Ну уж нет. Как учащийся будет _понимать_, что такое список, стек и т.п., если сам не реализует это, а заодно - и все необходимые операции, типа добавления-удаления элементов или балансировки деревьев?

Я в группе единственный человек, который знаком с лиспом. И когда у нас были лобораторки по спискам половина вообще ничего не понимала, ни зачем это нужно, ни как его использовать. Я же познакомившись со списками сначала в лиспе левой ногой писал проги этой половине группы, в которых они разбирались с большущим трудом. Препод была очень довольна моимы навыками.

Вывод делай сам.

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

Не извиняю. :) Я в упор не понимаю нахрен мне писать парсер секспов и скрипты к дебаггеру? А что делать людям не знающим что такое сексп и юзающие тупой дебаггер от борланда?

А множества в паскале такие, что лучше уж бы их совсем не было. :) Но это ты зря. Есть несколько красивых алгоритмов, использующих множество (например, генерация простых чисел, волновой алгоритм в графе).

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

Специальность 2201 решает непадеццки!!! Йеес!!

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

>>я как учил то переходил в большинстве языков до уровня асма и никаких проблем, и все таки пора убирать паскалю и делфю, с обучения, или сразу готовить прогеров по графике, бд, сайтам или еще че. потому [SNIP] лисп пхп и перл с все равно лучший я даже не заметил как начал писать на си я его просто узнал потихонько пока программил на остальных языках, он самый хитрый язык и умный

> Как, однако, люди раскрываются в писменной речи. Однозначно, этот пост писал perl программист :-))

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

Как перл-программист заявляю, что как раз мы внимательно следим за знаками препинания - ибо в них сила. Как там бишь говорил Ларри?

Some people complain that Perl is 'noisy'. This is like saying that English is 'wordy'. About what they call noise, we prefer to think as actual syntax of the language.

anonymous
()

Pascal отличный язык - учит и логике и програмированию железа тем кто захочет; прекрасно работает без всяких #pragma и прочих извращений

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

> Pascal отличный язык - учит и логике и програмированию железа тем кто захочет; прекрасно работает без всяких #pragma и прочих извращений

О, анонимус маладцв. Напомнил народу что в паскале нет нормальной макросистемы :)

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

> Особенности структур данных -- на лиспе, на асме -- их представление в памяти. Ни в коем случае не наоборот.

Как ты себе это представляешь ? Как минимум придестя реализвоать все базовые операции над спискаим деревьями и т.п. Ты думаешь в виде регистров, адреов памяти и "опкодов" это будет нагляднее чем на паскале? Средненький студент не сможет выполнить большинство лаб по этому курсу. Тут ты городишь огород на ровном месте.

> Также, для того чтоб понять как распределяется память в паскале надо понимать что такое оперативка, стек, куча и т. п.

Это доступнее нежели объяснить что такое алу из чего оно стсотит, что такое регистр, как выполняются те или иные операции над данными на схемотехническом уровне, какие спсобы адресации памяти существуют, какие модели памяти существуют. Если ты будешь объяснять ассемблер для 386, то тут еще туеву кучу надо прочитать в т.ч. про архитектуру опрационных систем. Знание таких вещей _необходимо_ программисту на ассемблере.

Потом ассемблеры они же от архитектуры процессора заивсят: сказать надо про CISC и RISC и т.д. и т.п. Но это уже факультатив...

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

Ага. Но учится то надо на чем-то.

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

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

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

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

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

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

Не находишь что с паскалем было бы на порядок проще. Без схемотехники и прочей лабуды ? Повторюсь: зачем городить огород без надобности...

> Прочитай мой жизненный пример, который я написал в ответе оксониану.

Да читал я. Только примеры такие ни о чем не говорят. Я списки изучал на паскале еще в школе и как видишь нормально себя чувствую. Освоил, легко. Меня не покоробило от этого.

А то, что челы в твоей группе у тебя лабы скатывали так это им низачот. Таким макаром они ничему не научатся: хоть паскалем их учи, хоть лиспом. Ищут легкий путей ... сцуконах.

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

>>Дядя Петя - гуру ассемблера для 8086, даже книжки по нему писал.

>Это ДА, но... NC не дядя Петя придумал.

>Да и в ассемблере... "дядя Петя" такие корки в своей книжке откалывал, что мы всей общагой ржали. Как, например, вам преобразование нибла в символ (0x0..0xF -> '0' .. 'F') через таблицу?:D

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

Может дашь ссылку на свои учебники/проекты ?

Мы всей командой может тоже повеселимся.

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

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

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

Да, проглядел, прошу прощения. :) Но все равно до лисповских макросов фрипаскалевским еще очень далеко.

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

2ukez:

> Попробуй расскажи людям особенности структур данных на ассемблере. Где никаких конструкций для описания этих структур нет. В деталях закопаешься, сути не покажешь.

Однако, Кнут показал и не закопался.

IMHO в последнее время _чересчур_ много внимания уделяется структуре языков. IMHO именно _это_ является признаком .... э-э-э ... некоторого непонимания сути вещей.

А Паскаль -- хороший язык. С разумной типизацией (в отличие от Це) и без зависимостей от маргинальных концепций (в отличие от Лиспа или, скажем, Пролога). Для обучения IMHO -- лучший (попробуй лиспера обучить кодить на Жабе ;) -- уверен, он нескоро сумеет накодить что-нибудь работающее -- будет верещать про отстойность Жабы и про то, как все "неправильно").

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

> Чем Схема не годится?

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

В общем, ИМХО идеальный обущающий язык должен быть таким:

1. Статическая типизация.

2. Поддержка ассемблерных вставок и ручного распределения памяти.

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

4. Простой синтаксис в духе питона, не допускающий синтаксического мусора а-ля перл, и следующий принципу "one way to do it".

nsav
()
Ответ на: комментарий от Die-Hard

> А Паскаль -- хороший язык. С разумной типизацией (в отличие от Це) и без зависимостей от маргинальных концепций (в отличие от Лиспа или, скажем, Пролога). Для обучения IMHO -- лучший (попробуй лиспера обучить кодить на Жабе ;) -- уверен, он нескоро сумеет накодить что-нибудь работающее -- будет верещать про отстойность Жабы и про то, как все "неправильно").

Знаешь, это как переход с китайских палочек на вилку и обратно, тяжело сказать, что более эффективно. Опытный кодер на яве обгонит неопытного лиспера и наоборот.

Насчет типизации паскаля -- меня всегда добивало, почему в f(longint) нельзя передать byte. Бред да и только.

А вообще вузам выгодно учить тому, за что деньги платят. Такова суровая реальность. Поэтому, лисп, хаскелл и мл популярностью особой не пользуются. Хотя зря :)

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

nsav2

> Знаешь, это как переход с китайских палочек на вилку и обратно, тяжело сказать, что более эффективно.

Именно так.

ЗдОрово сказал! Обязательно запомню -- действительно, замечательная аналогия.

И пока я живу в Европе, я буду детей в первую очередь обучать вилкой есть, а уж потом могу и про палочки вспомнить...

Die-Hard ★★★★★
()
Ответ на: комментарий от BigBug

в старые добрые времена, читали нам лекции..по старинке - ассембер ЕС ЭВМ, лекции правда отличались тем, что детально разбирался макропроцессор(как он внутри работает, алгоритмы и внутренние структуры). Блин, да там макросами такие вещи можно было делать, что макроязык C и шаблоны C++ смотрятся бледненько..

кстати, а кто из упёртых критиков паскаль, знает что такое p-машина и p-коды ?

anonymous
()
Ответ на: комментарий от Die-Hard

> Однако, Кнут показал и не закопался.

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

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

ukez :

> "Кнутов" на свете мало. А преподавателей много. Не каждый из них Кнут. Да и кнутовское объяснение не для начинающих.

Тоже верно...

Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous

> А что, Ексель -- вполне себе среда (функционального, кстати :)) программирования, весьма подходящая для своих задач.

Да ну, а мужики то не знают!

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

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

Да-ра-гой, зачэм придумывать, если есть Python.

В общем как говорят, Гвидо Ван Россум рулит!

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

>Да-ра-гой, зачэм придумывать, если есть Python.

>В общем как говорят, Гвидо Ван Россум рулит!

читал в гвидовском блоге про планы избавления питона от map/filter/reduce/lambda etc., если оно действительно так, то дело плохо с питоном :)

ezhi
()

Free Pascal 2.0.0 - или детские баги...

Пишем простую программу program test; begin writeln('Hello world') end. компилируем и запускаем в IDE Win32 версии FPC 2.0.0. После этого от туда пропадает мышь. Ищем похожий баг в их базе:

http://www.freepascal.org/bugs/db.php3

и находим там точно такой же баг, за номером 1350, присланный хрен знает когда, но сейчас со статусом Unreproducable.

Неужели за столько лет разработчики не научились толком баги ловить исправлять?

Вот Virtual Pascal - был лучше. Жаль только, что проект недавно умер.

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

> Я же познакомившись со списками сначала в лиспе левой ногой писал проги этой половине группы, в которых они разбирались с большущим трудом. Препод была очень довольна моимы навыками.

> Вывод делай сам.

Делаю. Плохо преподавали структуры данных. Мне нравилась программа обучения на ВМиК - первые полгода изучались алгоритмы и структуры данных, вообще говоря, без привязки к какому-либо языку программирования. Синтаксические конструкции Паскаля не изучались вообще. Примеры, которые приводились на лекциях, лабораторные могли писаться на произвольном языке программирования, но по-моему, все писали на Паскале. LISP и Scheme появились только на третьем курсе, если мне память не изменяет, и, насколько я теперь понимаю, именно потому, что где-то раньше, на какой-то из математик было правильно (а не "на пальцах") введено понятие лямбды.

> Я в упор не понимаю нахрен мне писать парсер секспов и скрипты к дебаггеру? А что делать людям не знающим что такое сексп и юзающие тупой дебаггер от борланда?

IMHO, для задач обучения алгоритмам и структурам данных "debugger considered harmful". ;) Тем более, что да, то, что выходило из-под ТурбоПаскаля тогда отладке вообще плохо поддавалось, во всяком случае силами студента-первокура.

> А множества в паскале такие, что лучше уж бы их совсем не было. :) Но это ты зря. Есть несколько красивых алгоритмов, использующих множество (например, генерация простых чисел, волновой алгоритм в графе).

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

А в таком виде как они есть - с операциями проверки, включения и исключения элемента - лучше их в языке не иметь, а давать реализовывать самостоятельно.

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

Я их ИДЕ и не думал никогда использовать. Терпеть не могу борландовский. Пишу в vi, дебагю с любимым ddd. Lazarus пока сыроват, но многообещающий.

asprayama
()
Ответ на: комментарий от Sun-ch

>>> Какая из современных прадигм программирования там есть?

Поверишь? Все кроме манагед кода, *** его...

>>>Ведь даже объектов нет.

Конечно есть, обьекты еще в борланд паскале были ;)

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

Паксаль раньше транслировался в байт-код псевдомашины, реализация этой машины была максимально простой и создать p-машину на конкретной архитектуре было делом несложным. (напомню, в то время главный язык - ассемблер;остальное считалось рюшками). Благодаря этому фокусу Паскаль стал стал самым портабельным языком высокого уровня. Очень просто переносился из системы в систему. Строгая типизация, Вот это всё в совокупности сделало subj очень распространнённым языком. Кстати траблы с множествами проистекают именно из этого момента - множество, это встроенный тип в p-машине, признайтесь, аппаратно-подобную реализацию подругому и не сделать. http://en.wikipedia.org/wiki/P-Code_machine

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

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

да чего там говорить. как неоднократно утверждалось - питон это попса как и делфи. кучи красноглазых агрессивных пионеров яркое тому подтверждение

anonymous
()

скажу одно: всё зависит от человека.

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

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

однако у вас был ускоренный "курс молодого бойца" ;-) из всего выпуска в итоге образование получили пара человек. (то есть кроме Вас, еще видимо один) Такое было в ПТУ и техникумах - 'оператор ЭВМ' называлось.

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

atrus: Я имел ввиду восстановлен мирроринг на chg.ru. Мое зеркало как раз оттуда предлагает скачивать файлы.

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

>Давай ты не будешь путать всяческие message passing и ООП? Про полиморфизм, инкапсуляцию и наследование не нужно рассказывать в терминах "облачков"

"Все суть объект.

Объекты могут обладать состоянием.

Посылка сообщения - единственный способ обмена информацией между

объектами."

Alan Kay (автор Smalltalk)

Оказывается больше ничего и не нужно, все остальное детали реализации.

Sun-ch
()
Ответ на: комментарий от ukez

> кстати линуксоидов с таким же мышлением в последне время развелось тоже многовато... религия ! ...

В основоном именно такие и орут: <что-то>rip, <что-то> не нужно, etc... ;-)

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

> Паскаль полный бред.

Вторично посылаю тебя туда же.

> Нефиг народ мучать. Пусть учат С, чистый без плюсов!!!

Пусть учат. Мне пофиг. Я-то C знаю и, когда надо, без проблемм разбираю сёвые исходники, причём порой лучше самих сишников. А вот если им чего понадобится от меня - будут ковырять паскалёвые. :-P

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

> О, анонимус маладцв. Напомнил народу что в паскале нет нормальной макросистемы :)

Конечно, ведь паскаль - нормальный язык, ему костыли не нужны... ;-F)

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

> Насчет типизации паскаля -- меня всегда добивало, почему в f(longint) нельзя передать byte. Бред да и только.

8-0 Вот так и рождаются слухи, про "гадкий паскаль". Один оклеветал, остальные поверили... Можно передать, даже не помню версии, когда бы было нельзя.

atrus ★★★★★
()
Ответ на: комментарий от Sun-ch

Полная цЫтата:

1. Everything is an object.

2. A program is a bunch of objects telling each other what to do by sending messages

3. Each object has its own memory made up of other objects.

4. Every object has a type.

5. All objects of a particular type can receive the same messages.

Нужно/не нужно - вопрос тонкий, но тогда хоть подписывай не так: "Alan Kay (автор Smalltalk)", а так: "Sun-ch (душа ЛОРа)".

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

> Но все равно до лисповских макросов фрипаскалевским еще очень далеко.

А когда будет близко, самое время вспомнить Greenspun's tenth rule :)

hbee ★★★★
()
Ответ на: комментарий от Sun-ch

> Ну нах. Перепишем на лиспе за 15 минут.

Опять же - не против. Только придётся прочитать паскалевский сырец. ;-)

atrus ★★★★★
()
Ответ на: комментарий от Sun-ch

> "Все суть объект. Объекты могут обладать состоянием. Посылка сообщения - единственный способ обмена информацией между объектами."

Ты уверен, что он это сказал по поводу ООП?

Более того - я уже сказал, что IMHO при обучении нужно сначала вводить процедурную парадигму, а только потом переходить к объектной.

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