Имя: Пароль:
1C
 
Робот-программист "Ванюша" (обработка импорт-экспорт справочников))
Ø
0 vladfind
 
09.11.05
23:57
[b]Роботу-программисту «Ванюше» исполнился годик! 11 ноября 2004 года - рождение идеи.[/b]
Дружно все поздравим! Как и полагается скажем несколько слов и подведём некоторые итоги.
Во-первых, огромное спасибо КБП (Кузнецову), за оказанное весеннее внимание и вкуснейший чай в компании симпатичных сотрудниц института. Было приятно и неожиданно разглядеть распечатки настоящего форума в руках кандидата технически наук. Всегда не хватает живого общения с людьми науки в моем провинциальном городке.
Во-вторых, огромная благодарность всем участникам темы «Робот программист «Ванюша». Ваши высказанные идеи, нежная критика и замечания помогли взглянуть в глубь проблемы автоматизации программирования.
В-третьи, низкий поклон преподавателям, программистам чьи документы и практический результат мне удалось найти на просторах интернета.
Жарким и солнечным летом приступил к созданию программного модуля, который сканирует исходный текст программы (крошечные тестовые примеры были написаны на целевых языках Modula, 1C, O2M) и распознает самые простые конструкции.
Первым подопытным объектом стал «Комментарий». «Ванюше» долго объяснял правила написания комментарий, а также особенности реализации для различных диалектов. Заочные консультанты сначала улыбались, но потом оценили основательность подхода. Некоторые тесты выдавали либо Ok', либо Error. В зависимости от конкретно диалекта языка программирования. Пришлось обратится к лекциям по грамматике языка (описание с помощью форм Бэкуса – Науэра и прочее, прочее).
 Рассматривали с роботом-программистом формальные грамматики и языки, их свойства и взаимосвязь с распознавателями. Приобретали начальные знания по регулярным грамматикам и конечным автоматам, контекстно-свободным грамматикам и автоматам с магазинной памятью как теоретической основе построения трансляторов для языков программирования, пытаясь нащупать путь построения распознавателя конструкций языка.
27.07.2005 была создана и отлажена обработка на языке 1С (около 3000 строк), которая сканировала файл с текстом программы, выявляла комментарии, формировала HTML файл с раскрашивала в цвет комментарии. Большую часть кода обработки нашёл в интернете в состоянии Open Source. Спасибо добрым людям. Это существенно сократило написание и отладку программного модуля.
МОДА.
Язык 1С не столь массовый и популярный в среде программистов. Есть огромный недостаток – за П.О. '1С: Предприятие 7.7' нужно платить деньги. Другая проблема – это отсутствие в пакете компилятора. Софт 1С - это интерпритатор. Увы...
   
С роботом-программистом прочитали лекции, книги, обзоры по языку программирования Prolog. Написали несколько тестовых примеров и выполнили в Prologе. Это совсем не процедурный язык! Было очень не привычно. Пришло ощущение, что в комплект робота-программиста нужно использовать ядро языка программирования логикой. Однако, как выяснилось, по-человечески очень даже трудно смысл написанных программ на языке Prolog. Большие проекты, в коллективе писать, отлаживать очень не просто. Не потому-то ли интерес к нему утихает в кругах программистов?
ОТОГИ.
Не прошло и года. После многих тестовых запуском различных языков программирования сформировал список инструментов, с помощью которых продолжим исследования и создание П.О робота-программиста «Ванюша»:
 
Язык программирования Java ; http://ru.sun.com/java/
Среда программирования Eclipse; http://www.eclipse.org
Реализация языка Prolog на Java; http://lia.deis.unibo.it/research/tuprolog/
Технология программирование мощно развивается. Просматривая диски из компьютерных журналов обратил внимание на CD диск к журналу МирПК, №6, июнь, 2003:
Раздел "ПРОГРАММИРОВАНИЕ"
Java 2 Runtime Environment, Standard Edition 1.4.1_02
Java 2 Platform SDK, Standard Edition (J2SE) 1.4.1_02
Java Web Services Developer Pack 1.1
IBM Jikes 2.2.1 (Java Virtual Machine)
JODE 1.1.1 (Decompiler& Optimizer for Java)
Jasmin (Java Assembler Interface)
Excelsior JET (Java Optimizer)
Basic to Java VM (Jaba 1.0.1)
Visual Basic to Java VMComponent Pascal to Java VM (GPCP 1.2.x)
C/C++ to Java VM (c2j)
Forth to Java VM (DELTA Forth System 0.8)
Fortran to Java VM (f2j 0.6)
Modula-2 to Java VM (Canterbury Modula-2 2.5.48)
Oberon to Java VM (JOB 0.75)
Oberon-2 to Java VM (Canterbury Oberon-2 2.5.51)
Pascal to Java VM (Canterbury Pascal 2.5.42)
Perl to Java VMProlog to Java VM (W-Prolog, tuProlog)
Python to Java VM (Jython 2.1)
Ruby to Java VM (Jruby 0.5.3)
Smalltalk to Java VM (Smalltalk/JVM)
Как видно из перечисленных проектов, сообщество программистов стихийно движется в сторону создания мета-программирования. Еще пару десятилетий и профессия программиста станет ископаемым артефактом.
Поздравляю «Ванюшу» с Днём Рожденья! Счастья, вырасти большим и умненьким.
а) В качестве подарка обещаю изменить дизайн сайта www.robot-ivan.narod.ru , сделанный на скорую руку.
б) Переписать 3000 строк кода с макро-языка программирования 1С на язык Java.
в) Продолжить воспитание робота-программиста «Ванюши».
[b][i]Надеюсь в среде сообщества программистов найти грамотных и заинтересованных наставников.
Добра всем и удачи. «Папа» «Ванюши». :)[/i][/b]
1 MMF
 
10.11.05
00:11
маразм крепчал...
2 Чучундер
 
10.11.05
00:45
Сам ты MMF!
Эх! Вот времена были! Матрица предшествования... Теория построения трансляторов... и прочая весьма интересная...
3 2Green
 
10.11.05
00:48
 я чо-то не пойму: ну обработка, ну экспорт-импорт... а при чём тут РОБОТ?
4 MMF
 
10.11.05
01:10
(0, 2) не надо так бурно радоваться всем тем страшным словам, которые старательно записали в конспекты.
"Хочу стать великим электронным программистом! И накопить знание могучих программистов." (с) http://www.robot-ivan.narod.ru/
Хочу пойти вырости большим-пребольшим и пойти в школу, тогда мне папа купит красивый блестящий портфель и я буду в нем носить толстые книжки!
5 2Green
 
10.11.05
01:18
 у меня тоже было некое подобие робота - "генерился" (модуль-генератор понятное дело я сам писал) исполняемый модуль в текстовик и сразу же и выполнялся. дело не хитрое. но развивать его нет смысла: для начала надо научить робота понимать простых пользователей - а это фиг два получится. вон переводчики тому живой пример.
6 vladfind
 
10.11.05
08:52
To [3] Робот-программист - это комплект программ, инженерная база знаний программиста. Задача этой программы накопить знания (например, ответить на вопрос "Как конвертировать исходные тексты программ на 1c |http://1c.alterplast.ru/gcomp|на другой целевой язык?"). Очевидно, что можно компилировать отлаженное и успешно эксплуатируемое приложение.
To [5] С языками программирования проще решать проблемы автоматизации. Язык-то формальный! Целевые процессоры всем хорошо известны: x86, Motorola и др. Графический интерфейс 2D, основной в деловых приложениях. Формализовать и научить переводить из одного языка в другой можно в обозримом будущем. Это правильно и по-человечески хорошо, использовать огромный фонд готового П.О. В том числе, написанного на макро-языке 1С.
7 2Green
 
10.11.05
13:36
 (6) т.е. робот переводит тексты с одного языка пограммирования в другой. а как же с формами(диалога)? там же задаются реквизиты диалога, их тип, расположение в конце концов, да ещё и слои - ну было бы прикольно взглянуть на функциональную копию типовой конфы 1С77 на Дельфи, FoxPro, Oracle или хотя бы даже в 1С80
8 2Green
 
10.11.05
13:42
 ещё проблема - использование разных объектов, если бы одних итех же - было бы проще.
 т.е. в 77 и 80 справочники "Номенклатура" не будут идентичны - разные свойства у них будут.
 блин, а прикольно было бы.
9 dronis
 
10.11.05
13:47
"профессия программиста станет артефактом"
нну .. тут думаю вы погорячились :)
10 vladfind
 
10.11.05
17:06
To [9] А где профессия извозчик?
To [7,8]Всё эти проблемы теоретически решены. Нужен софт!
11 Женщина
 
10.11.05
17:13
[:]||||||||||||||||[:]
12 Fish
 
10.11.05
17:34
(10) Извозчики стали таксистами. Тип транспорта поменялся, а профессия осталась :)
13 Stopper
 
10.11.05
18:09
Анекдот из передачи Трахтенберга.
Младшеклассница звонит по мобиле маме - работнику телестудии:
-Мама, сколько будет сорок плюс сорок?
-Час двадцать.
14 Stopper
 
10.11.05
18:15
(10) Кстати, по термояду тоже все проблемы решены. Нужен хард. А пока нефть жгем. Что случится раньше?
15 seugenys
 
10.11.05
18:32
Жжошъ
Вот я завтра пойду к гл.буху и скажу: Всё ваши проблемы теоретически решены. Нужен софт!
16 vladfind
 
11.11.05
13:32
To [15] И, не забудь на листке представить бюджет. Лучше с семью нулями до запятой! :)
17 vladfind
 
11.11.05
13:52
To [13] Ещё один анекдот:
Поспорили как-то строитель, агроном и электрик чья профессия древнее:
- Мы пирамиды ваяли первыми, уже несколько тысяч лет назад. - выкрикнул строитель.
- А мы, агрономы, Вавилонские сады ещё до ваших пирамид, возводили.- возразил агроном.
- А перед тем как Бог сказал:" Да будет свет!", кто всю электропроводку подвёл!?
Программист всегда исправляет последнюю ошибку.