Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GNU-Pascal, динамические массивы, В поисках компилятора 
V
    Опции темы
Yoreck
Дата 4.2.2008, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 20.6.2005

Репутация: нет
Всего: нет



В связи с суицидом kylix, а так-же с тем что он все равно не поднимается на FreeBSD, пытаюсь найти альтернативу.
Пока очень импонирует gnu-pascal. Можно собирать проект с использованием сишныйх файлов, все понятно про makefile и проч.

Однако столкнулся с такой проблемой - в документации указанно что можно организовывать динамические массивы, в том-же формате, что и в Delphi:

Код

    variable:array of TType;


Однако компилятор выдает ошибку

Код

.pas:49: error: syntax error before `of'



Кто-нибудь сталкивался с такой проблемой? 
PM MAIL   Вверх
volvo877
Дата 4.2.2008, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Yoreck @  4.2.2008,  11:51 Найти цитируемый пост)
в документации указанно что можно организовывать динамические массивы, в том-же формате, что и в Delphi:
В документации указано, что динамические массивы создаются без трюков с использованием GetMem ("without dirty tricks"), но нигде не сказано, что их надо создавать именно так:
Код

var
  variable: array of TType;


Вот тут лежит пример, показывающий использование schemata для работы с динамическими массивами: Example

P.S. Кстати, чем FPC не устраивает? Вот там именно так как в Дельфи объявляются динамические массивы...

Это сообщение отредактировал(а) volvo877 - 4.2.2008, 13:29
PM MAIL   Вверх
Yoreck
Дата 20.2.2008, 07:58 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 20.6.2005

Репутация: нет
Всего: нет



FPC очень нравится, но очень смущает невозможность подключения сишных библиотек. Точнее - недоделанность такой возможности.
Напр libc так и не удалось подключить на FreeBSD... видимо прийдется подождать пока Free Pascal разовьется, буду пока писать на C, как дурак... :(
PM MAIL   Вверх
w2w
Дата 17.11.2008, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2008

Репутация: нет
Всего: 1



Я так понимаю, что Вам нужно создавать консольные программы? Если это так, то можете смело пользоваться консольным компилятором от Kylix. dcc его фамилия. можно писать Makefile и вперед, тем более что компилятор в Open версии и в Enterprise один и тот же smile

З.Ы.Не запускается то лишь среда разработки, а компилятор должен работать на ура
PM MAIL   Вверх
Yoreck
Дата 17.11.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 20.6.2005

Репутация: нет
Всего: нет



Цитата(w2w @ 17.11.2008,  08:19)
Я так понимаю, что Вам нужно создавать консольные программы?

Недопонял. Откуда такой странный вывод?

По поводу куликса - не вижу смысла использовать инструмент, который более не поддерживается и не развивается. (Или я на счет этого ошибаюсь?) ИМХО в суровом программерском мире все быстро развивается и быстро устаревает. Вот к примеру, кто сейчас использует директиву компилятора inline? А когда-то было актуально. Вот проийдет еще год-полтора и окажется что все работают на power-pc на fuckmybrainOS и юзают генетические алгоритмы. И чего я там буду делать с куликсом? 
PM MAIL   Вверх
w2w
Дата 24.12.2008, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2008

Репутация: нет
Всего: 1



Цитата(Yoreck @ 17.11.2008,  08:38)
Цитата(w2w @ 17.11.2008,  08:19)
Я так понимаю, что Вам нужно создавать консольные программы?

Недопонял. Откуда такой странный вывод?

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

По поводу смерти и жизни smile Не хотел путать теплое с мягким.  Есть интересы компаний придумывающих "технологии" и производящих коммерческие компиляторы, а есть интересы пользователей и программеров. Если при помощи манипуляции сознанием нам пытаются втюхать что-то мегановое и мегапродвинутое, это не значит, что так оно и есть. Я живу уже достаточно давно, пришлось поработать и на ЕС и на ДВК smile Поверьте, мало что поменялось в принципе smile Используйте бесплатный dcc, скорее всего и на BSD пойдет. smile Среда разработки и компилятор это не тождественные понятия.
PM MAIL   Вверх
Yoreck
Дата 24.12.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 20.6.2005

Репутация: нет
Всего: нет



Цитата

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


Му например на базе GTK smile Чувак, ты аццки путаешь язык программирования, среду разработки и библиотеки. Складывается впечатление, что для тебя это что-то едино, на деле же вполне можно использовать библиотеку написанную на C++ в программе написанной на Паскале для отрисовки оконного интерфейса пользуясь для написания кода хоть vi (хотя лично мне нравиться KDevelop, да, там можно писать на Паскале, но нет, я не использовал это (KDevelop+fpc) для реальных проектов (тока KDevelop+C))
Более того, используя gcc вполне можно написать программу хоть на 10 языках одновременно (И эта возможность имеет достаточно большой практический смысл). Gnu-Pascal входит в сотав gcc, а в случае с fpc прийдется немного повозится с makefile, но  тоже возможно.

Что касается создания графического интерфейса с использованием визуальных редакторов, то это ИМХО - бред, потому как кажущаяся скорость разработки оборачивается непрерывным копанием в коде созданном по умолчанию, сложностями с динамическим созданием новых объектов и в конечном итоге выливается в переписывание большой части кода с нуля. Чего не скажешь об использованнии фреймворков, например wxWidgets в принципе не предпологает возможности визуального редактирования, однако работа продвигается занчительно быстрее чем юзая стандартный дизайне форм для Delphi, даже на начальных стадиях и при этом приложение значительно выигрывает в плане возможностей маштабирования.

ЗЫ: Ну ты и археолог... тема созднна почти год назад smile

Хм.. прочитал твою последнюю фразу про среду разработки и компилятор. Абсолютно не вяжется с предшествующим текстом.
На счет "мало что поменялось" - сходи на курсы повышения квалификации, я и сам в программировании давно, правда нше поколение - это ямахи и спектрумы, но с тех пор изменилось ВСЕ! 

Появилось ООП например, ты в курсе? 
Появились и бурно развиваюся различные стретегии групповой работы.
Появилось экстремальное программирование.
Появилась стандартная модель OSI. Появился интернет. Появился ajax  и jquery. Появился PGP/SSL и прочее.
Появился LDAP/AD.
Понятие кроссплатформенности теперь включает в себя не только юникс-подобные системы.
Пявились 64 разрядные процы.
Появились парралельные вычисления. Как ты собираешься писать серверное многопользовательское приложение без этого?
Появились реляционные базы данных.
Появились объектные базы данных.
Из программирования выделились отдельные профессии: тестер/дизайнер/сисадмин/техподдержка

Да тут каждый день что-нибудь появляется! И все программисты в едином порыве следят за разитием технологий, качают судорожно документацию,
собираются на семинары, пишут и читают best-practices и в итоге работают быстрее, слаженней и качественней.

А теперь вылазит какой-то типок и говорит что все это было еще во времена ЕС и что он практчески в те времена обладал достаточной квалификацией чтоб работать архитектором в современном мире!

На данный момент состояние "программа работает" не значит НИЧЕГО! Работающую программу и дурак напишет. Программа должна быть легко модифицируемой, настраиваемой, удобной для пользователя, предусматривающей все, даже самые неожиданные действия пользователя, устойчивой к взлому, устойчивой к прослушиванию передаваемых по сети данных, позволять работу различных частей на физически разных ЭВМ, предусматривать возможность резервного опирования данных, и предусматривать разнообразные неполадки в этой куче.

Но для написания консольного калькулятора, действительно ничего не изменилось, вот он:

calc.sh
Код

if(`test "$1" = "help"`); then
 echo "Usage: calc.sh <expression>";
 exit;
fi;
echo $(($1));

И на это знание ты потратил всю свою жизнь?

Это сообщение отредактировал(а) Yoreck - 24.12.2008, 14:53
PM MAIL   Вверх
w2w
Дата 4.1.2009, 01:11 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2008

Репутация: нет
Всего: 1



Это уже кажется из области философии. ОК, можно и так. По пунктам:
1. Я отлично различаю среду разработки, редактор, язык программирования и библиотеки. Откуда Вы взяли, что я что-то путаю? Где это написано? Пожалуйста, не нужно собственные мегаоткрытия приписывать мне, это излишне. Не нужно думать, что только Вы такой продвинутый чел, что знаете как выйти из vi ;)  
Цитата(Yoreck @  24.12.2008,  14:13 Найти цитируемый пост)

на деле же вполне можно использовать библиотеку написанную на C++ в программе написанной на Паскале для отрисовки оконного интерфейса

2. Пожалуйста, напишите какой-либо код, где было бы возможно использование в программе, написанной на паскале, методов из библиотеки с cpp-шным интерфейсом (именно cpp-шным, т.е. без extern c, и не с конкретной бинарной библиотекой, а собираемой в любой момент из сырцов). Возможно, для Вас это не существенно, но GTK имеет сишный интерфейс и именно поэтому юзать ее можно из любого языка программирования поддерживающего динамические библиотеки.

Цитата(Yoreck @  24.12.2008,  14:13 Найти цитируемый пост)
Что касается создания графического интерфейса с использованием визуальных редакторов, то это ИМХО - бред, потому как кажущаяся скорость разработки оборачивается непрерывным копанием в коде созданном по умолчанию, сложностями с динамическим созданием новых объектов и в конечном итоге выливается в переписывание большой части кода с нуля. Чего не скажешь об использованнии фреймворков, например wxWidgets в принципе не предпологает возможности визуального редактирования, однако работа продвигается занчительно быстрее чем юзая стандартный дизайне форм для Delphi, даже на начальных стадиях и при этом приложение значительно выигрывает в плане возможностей маштабирования.


3. Люблю всегда слушать рассуждения теоретиков, особенно когда на практике много лет вижу как раз обратную картину. Вам не кажется, что эксперт работающий в Делфи будет круче аматора работающего с фреймворками? Такая мысль не приходит? Или вы сравниваете эксперта в wxWidgets со студентом, делающим лабу на Делфи? 
4. Это какой же код в Delphi, например, создается по-умолчанию? smile Или Вы о KDevelop? smile 
5. Наверное именно мегапростотой работы с фреймворками объясняется убогость большинства оконных приложений, которые живут в никсах? Про сотни мегабайт дополнительных библиотек я не говорю. 

Цитата(Yoreck @  24.12.2008,  14:13 Найти цитируемый пост)

Появилось ООП например, ты в курсе? Появились и бурно развиваюся различные стретегии групповой работы.Появилось экстремальное программирование.Появилась стандартная модель OSI. Появился интернет. Появился ajax  и jquery. Появился PGP/SSL и прочее.Появился LDAP/AD.Понятие кроссплатформенности теперь включает в себя не только юникс-подобные системы.Пявились 64 разрядные процы.Появились парралельные вычисления. Как ты собираешься писать серверное многопользовательское приложение без этого?Появились реляционные базы данных.Появились объектные базы данных.Из программирования выделились отдельные профессии: тестер/дизайнер/сисадмин/техподдержка


4. Ирония понятна smile Гордость распирает от того, что много умных слов удалось выучить? Конечно в курсе, практически со всем перечисленным знаком, а на некторых вещах специализируюсь. Как то СУРБД, СУОБД, AJAX, XML, SOAP, CORBA (пропущено в цитируемом списке) со своими знаниями очень даже легко пишу серверные многопользовательские приложения, которые еще и работают! smile И легко и безопасно (!) модифицируются и настраиваются в широких пределах. Одно только не понял - ЧТО ПРИНЦИПИАЛЬНО изменилось. Байт перестал быть байтом? Или избыточные вычисления в циклах перестали быть тормозами программ? Или программисты перестали делать ошибки в программах? Возможно я для тебя Америку открою, но до сих пор множество программ (отличных программ) пишутся без ООП и AJAX-а, на старом добром си. И работают они быстрее и надежнее многих, которые написаны мегапродвинутыми в современных технологиях мегапрограммистами. Ядро Linux чем не пример? Или язык программирования Lua? 

Цитата(Yoreck @  24.12.2008,  14:13 Найти цитируемый пост)
На данный момент состояние "программа работает" не значит НИЧЕГО! Работающую программу и дурак напишет. Программа должна быть легко модифицируемой, настраиваемой, удобной для пользователя, предусматривающей все, даже самые неожиданные действия пользователя, устойчивой к взлому, устойчивой к прослушиванию передаваемых по сети данных, позволять работу различных частей на физически разных ЭВМ, предусматривать возможность резервного опирования данных, и предусматривать разнообразные неполадки в этой куче.

5. А когда значило, что программа должна только работать? Настраиваемость, модифицируемость и др. требования к программам были всегда. Возможно, для Вас это тоже открытие? Или Вы думаете, что программисты на фортране или pl/1 были вроде дикарей с луками и стрелами? Поверьте, не глупее Вас, а скорее всего даже и умнее в разы. smile Попробуйте, написать программу для комьютера с 124К ОЗУ при помощи своих современных парадигм. smile А ведь до сих пор на некоторых АЭС работают ТЕ программы. 
Никогда не приходилось задумываться об этом? Почему раньше 124К хватало (хотелось, конечно, больше, что там говорить), а сейчас 8Гиг ОЗУ, четырех процессорная станция с терабайтным рэйдом мало кажется? Не думали о том, что производителям железок тоже жить надо? И производителям "новых" технологий тоже. Это целая индустрия, все хотят кушать и не ч0рный хлеб, а булку с ч0рной икрой ;) А чтобы купили нужно убедить технарей в первую очередь, а прогеры то уж убедят менеджеров, что без .Net (или что там по списку?) программировать невозможно и что жизненно необходимо выложить энную сумму за среды разработки с поддержкой суперновых технологий. А такая огроманя сфера как обучение "новым" технологиям. Это огромные деньги и хорошо отлаженная машина манипулирования общественным мнением (см. реклама). 
А потом получается, что закачал калькулятор, по функциональности не отличающийся от
Код

if(`test "$1" = "help"`); then
 echo "Usage: calc.sh <expression>";
 exit;
fi;
echo $(($1));

а она, требует закачать и установить многомегабайтный фреймворк. Это, безусловно, те технологии за которые стоит бороться. smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

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

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0803 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.