Имя: Пароль:
IT
 
.Net: PascalABC.Net - будущее программирования на Паскаль под .Net
0 jbond
 
23.11.06
10:45
Мой брат перед выездом полностью дописал ядро компилятора Pascal под .Net.

http://it.mmcs.rsu.ru/modules.php?name=Forums&file=viewtopic&t=434
1 jbond
 
23.11.06
10:47
По всем позициям этот компилятор обогнал Борландовский под .Net и даже под Win32 (это заслуга уже .Net 2.0)

Ожидаемая дата выхода - Май 2007

Борланд готовься - тебя съедят заживо...
2 jbond
 
23.11.06
10:51
Зы. Вообще-то во время разработки компилятора было замечено:
1) .Net - наилучшая на сегодня система разработки ПО (не БД!)
2) Паскаль - самый отстойный язык программирования (но это не мешает ему быть стандартом де-факто для обучения в нашей стране)
3 Иде я
 
23.11.06
10:53
ну-ну...
4 jbond
 
23.11.06
10:55
По быстодействию он не уступает нативным win32 приложениям откомпилированным в Делфи 7
5 skunk
 
23.11.06
10:57
писец как у дятлов крышу рвет
6 JCage
 
23.11.06
11:19
(0) А зачем оно надо? Велосипед?
7 jbond
 
23.11.06
11:21
(5) - сможешь написать лучше?
8 jbond
 
23.11.06
11:24
(6) - какой велосипед? С++ - велосипедов - дочерта, а Паскаль под .Нет - только у Борланд. Да и то он - качества ниже среднего.

Под Win32 - только FreePascal - но у него устаревшая среда разработки (хотя как компилятор он очень хорош)
9 skunk
 
23.11.06
11:26
да нет... куда мне до команды из 2000 программеров, а не специалистов...



а со специалистами тягатся... тоже не могу... у них мед неправильный...
10 jbond
 
23.11.06
11:27
Для обучения Паскалю в нашей стране в подавляющем числе случае используется Турбо Паскаль 14-летней давности...

Из современного - фактически нет сред разработки, пригодных для обучения...
11 jbond
 
23.11.06
11:28
(9) - этот компилятор фактически написан 1-м программистом
12 skunk
 
23.11.06
11:28
да ну... серьезно что ли?
13 DGorgoN
 
23.11.06
11:29
TMTPascal.net - тоже уже есть. Если что..
14 skunk
 
23.11.06
11:29
(11)я и говорю... куда мне до вас... вы целых 2000 программеров из борланда обскакали... одно слово специалисты...
15 DGorgoN
 
23.11.06
11:30
(13) в 2-м за пару месяцев. Короче ждем-с..
(8) А почему не БД?
16 DGorgoN
 
23.11.06
11:30
мая 2007 года - как оптимистично звучит :)
17 jbond
 
23.11.06
11:31
http://www.tmt.com/net.htm - этот что ли?
18 skunk
 
23.11.06
11:31
название какое-то неправильно только... надо было типа Паскаль007 или Паскаль005
19 skunk
 
23.11.06
11:32
и тогда точно ребята из борланада у вас лицензию запокуплять будут... а может быть и сама МС...
20 DGorgoN
 
23.11.06
11:36
(17) да, то..
21 jbond
 
23.11.06
11:40
(20) - а где его скачать можно?

Основная страница проекта PascalABC.Net:
http://pascalabc.mmcs.rsu.ru/
22 skunk
 
23.11.06
11:40
интересно а твой братишка как лексемы разбирал... какой алгоритм использовал...
23 skunk
 
23.11.06
11:41
сколько проходный компилятор... и линковщик в нем уже встроен... или надо отдельно линковать
24 DGorgoN
 
23.11.06
11:42
(22) Берем VB.Net. Заменяем некоторые слова и убираем ковычки. Делаем IDE для свежеиспеченного языка программирования..
25 jbond
 
23.11.06
11:44
Здесь немного устаревшая версия:
http://pascalabc.mmcs.rsu.ru/versions/PABCNetv002.zip
27 skunk
 
23.11.06
11:45
(24)тама нету IDE
28 skunk
 
23.11.06
11:47
1 место на студенческой конференции
29 DGorgoN
 
23.11.06
11:47
(27) Где?
31 DGorgoN
 
23.11.06
11:48
8-\
32 coder1c80
 
23.11.06
11:49
нда... хотя бы страничку приличную сделали, что ли...
33 DGorgoN
 
23.11.06
11:51
Интересно, а этот паскаль работает быстрее чем c#? или vb.net?
35 DGorgoN
 
23.11.06
11:55
Я всё таки не буду сильно ругаться. может перед нами новый "Билл Гейтс"!
36 romix
 
модератор
23.11.06
11:55
(2) > .Net - наилучшая на сегодня система разработки ПО (не БД!)

А можно поподробнее насчет БД? В чем косяк?
39 Salvador Limones
 
23.11.06
12:02
Хммм. jbond решил напоследок понтануться?
40 jbond
 
23.11.06
12:06
Ага! Ну все, всем пока!
42 DGorgoN
 
23.11.06
12:20
(36) Уже спрашивал..
43 DarkStar
 
27.11.06
21:12
На вопросы отвечает один из разработчиков ядра PascalABC.NET

jbond писал:"этот компилятор фактически написан 1-м программистом"
В разработке системы программирования PascalABC.NET заняты 6 человек.
Ядро(компилятор) разрабатывают трое. Уже двое, после того как уехал Бондарев Иван. Бондарев Иван полностью реализовал генератор EXE кода под платформу .NET, идею компилированных модулей PCU, а также некоторые другие алгоритмы.

skunk писал: "интересно а твой братишка как лексемы разбирал... какой алгоритм использовал..."
Синтаксическим анализатором занимаюсь я. Для генерации парсера была использована система GoldParserBuilder - LR генератор синтаксических анализаторов.

skunk писал: "сколько проходный компилятор... и линковщик в нем уже встроен... или надо отдельно линковать"

В смысле прохода по исходному коду программы - одно проходный. т.к. омпиляция разделена на три независимых этапа:
1)Синтакчический анализ и построение синтаксического дерева
2)Семантический анализ и построение из синтаксического дерева семантического дерева
3)Генерация кода по семантическому дереву

Процесс линковки встроен.
44 Ay49Mihas
 
28.11.06
04:43
(5) В кои-то веки с skunk согласен (DarkStar, не относи к себе)

(43) Народ велосипедит? Вроде есть IronPython для .NET, после питона зачем вообще паскаль нужен?
Лучше бы портанули flex/yacc под .NET, граждане в винде заценили бы утилитки.
А так --- респект, дело трудное.
45 skunk
 
28.11.06
05:27
(43)получается что трехпроходный... или этому сейчас в институтах не учат
46 Кецалькоатль
 
28.11.06
14:00
На .NET компилятор написать - раз плюнуть. Там в библиотеке классы для построения дерева кода есть, а MSIL код они сами построят и в сборку сохранят.
47 DGorgoN
 
28.11.06
14:09
46 +1
48 DarkStar
 
28.11.06
17:24
2Кецалькоатль
Дисскуссия на эту тему с Вами считаю бессмысленной. Вот когда Вы напишете компилятор по возможностиям равный компилятору Delphi 8(который, как извесно, под .NET), тогда и обсудим с Вами, скольколько раз для этого надо плюнуть.
49 Кецалькоатль
 
29.11.06
08:25
Когда строили компиляторы в native, основная проблема была в генерации ассемблерного кода.
В .NET задача облегчается, и основной проблемой становится анализ синтаксиса и семантики. Далее сгенерировать MSIL по построенному дереву кода (а его можно строить прямо в процессе анализа исходного текста) вообще не представляет никаких трудностей.
Скажу, что на .NET у меня написан компилятор с декларативного скриптого языка, ничем не напоминающего ООП и процедурные языки. Пришлось продумать иерархию и соответствия классов. А классы Delphi .NET можно компилировать практически 1 к 1.
50 DarkStar
 
29.11.06
13:16
Мы ничего не перегоняем. У нас свои деревья, гоним IL код мы по ним. Мы сначало использовали готовые классы семантического дерева, но выяснилось что компилятор получается медленным(компиляция медленна) и не гибким. Сечас генератор пользуется  ILGenerator.Emit()(в Reflection.Emit).  Генерация кода дествительно во много раз легче асемблерного, т.к. IL код уже имеет команды вызова виртуальных функций и другие высогоуровневые возможности(и не надо регистры оптемизировать, чтоб их!). Я могу говорить т.к. у нас написан генератор обычного нативного(win32) кода, для языка Паскаль без классов(писал его Бондарев Иван).

Т.к. в нашем компиляторе компиляция разделена на три независемых этапа то паралельно пришутся все три часи компилятора. Синтакический анализатор и кодогенератор уже готовы. Cейчас основная работа ведется в семантическом анализаторе.
Семантический анализ очень сложен в языках высого уровня(таких как Delphi,C#...). Небуду вдаваться в подробности, но поверьте мне - там настоящие джунгли.
Также достоинства  такого разделения следуйщие:(алгоритмы обработки деревьев отделены от самих деревьев с помошью концепции визиторов)
1)для подключения нового синаксического анализатора в двух других частях менять ничего не нужно.  Т.е. можно написать парсер своего языка и компилятор подключит его как динамическую dll.
2)тоже самое можно проделывать с генератором кода: можно написать свой визитор-интерпретатор и код будет не гнаться в EXE а интерпретироваться, или написать кодогенераторы под другие платформы.
51 Кецалькоатль
 
30.11.06
08:16
Ну молодцы, что еще сказать :)
Делитесь опытом, а не только готовым компилятором :)