Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Вниз

Построение дерева исходного кода   Найти похожие ветки 

 
xayam ©   (2007-04-02 10:37) [0]

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

Нашел такую же идею здесь - http://jeffrafter.com/samples/delphi/Pas2XML.zip , но реализованно не до конца (( и большей части исходников нет.

Скажем, имеем такой исходник
unit UMForm;

interface

uses
 Windows, Forms, Dialogs, SysUtils, Classes, ActnList,
 XPStyleActnCtrls, ActnMan, Menus, ActnPopup,
 ImgList, Controls, CustomizeDlg, AppEvnts, Graphics,
 JvBaseDlg, JvDesktopAlert, JvComponentBase, JvTrayIcon,
 ActnCtrls, ToolWin, ActnMenus, ComCtrls, JvExComCtrls,
 JvStatusBar, ExtCtrls, JvPageList, JvExControls, JvComponent,
 FastMMUsageTracker, JvgProgress, SynEdit, SynMemo, Buttons, StdCtrls,
 JvExStdCtrls, JvButton, JvCtrls, cxControls, cxSplitter, JvExExtCtrls,
 JvSplitter;

type
 TFD2h = class(TForm)
   PageList: TJvPageList;
   JvStandardPage1: TJvStandardPage;
   JvStandardPage2: TJvStandardPage;
   JvStandardPage3: TJvStandardPage;
   JvStandardPage4: TJvStandardPage;
   TrayIcon: TJvTrayIcon;
   DlgAlert: TJvDesktopAlert;
   ApplicationEvents: TApplicationEvents;
   AMMenu: TActionMainMenuBar;
   CustomizeDlg1: TCustomizeDlg;
   AToolBar: TActionToolBar;
   ILicons: TImageList;
   APopupBar: TPopupActionBar;
   TrayOptions: TMenuItem;
   AManager: TActionManager;
   acNew: TAction;
   acOpen: TAction;
   acSave: TAction;
   acSaveAs: TAction;
   acPrint: TAction;
   acPreview: TAction;
   acHelp: TAction;
   acLicense: TAction;
   acAboutProgram: TAction;
   acFormating: TAction;
   acExit: TAction;
   acUndo: TAction;
   acRedo: TAction;
   acCut: TAction;
   acCopy: TAction;
   acPaste: TAction;
   acDelete: TAction;
   acSelectAll: TAction;
   acFind: TAction;
   acConvert: TAction;
   acCreateArchive: TAction;
   acCreateInstall: TAction;
   acServerConnect: TAction;
   acWizardPublic: TAction;
   acButtons: TAction;
   acButtonsShow: TAction;
   acButtonsHide: TAction;
   acFiles: TAction;
   acView: TAction;
   acPublication: TAction;
   acOptions: TAction;
   acExpand: TAction;
   acCollapse: TAction;
   acCreateFolder: TAction;
   acFastMM: TAction;
   acTBViewHand: TAction;
   acTBViewPointer: TAction;
   acCommandShow: TAction;
   PanelCommand: TPanel;
   MSynCommand: TSynMemo;
   PanelComTop: TPanel;
   BtnCommandClose: TJvImgBtn;
   JvSplitter: TJvSplitter;
   PProgress: TJvgProgress;
   BtnClearCommand: TJvImgBtn;
   EditCurrentDir: TEdit;
   JvImgBtn1: TJvImgBtn;
   acExecute: TAction;
   EditCommand: TEdit;
   JvSplitter1: TJvSplitter;
   APopupCommand: TPopupActionBar;
   acCopyCommand: TAction;
   N12: TMenuItem;
   acCreateProject: TAction;
   acDeleteProject: TAction;
   acPropertyProject: TAction;
   acCreateFtp: TAction;
   acDeleteFtp: TAction;
   acPropertyFtp: TAction;
   procedure FormShow(Sender: TObject);
   procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
   procedure acAboutProgramExecute(Sender: TObject);
   procedure acLicenseExecute(Sender: TObject);
   procedure acHelpExecute(Sender: TObject);
   procedure acExitExecute(Sender: TObject);
   procedure acFilesExecute(Sender: TObject);
   procedure TrayOptionsClick(Sender: TObject);
   procedure acOpenExecute(Sender: TObject);
   procedure acDeleteExecute(Sender: TObject);
   procedure acSelectAllExecute(Sender: TObject);
   procedure acButtonsShowExecute(Sender: TObject);
   procedure acDeleteUpdate(Sender: TObject);
   procedure acSelectAllUpdate(Sender: TObject);
   procedure acButtonsUpdate(Sender: TObject);
   procedure acExpandExecute(Sender: TObject);
   procedure acExpandUpdate(Sender: TObject);
   procedure acFastMMExecute(Sender: TObject);
   procedure acTBViewPointerExecute(Sender: TObject);
   procedure acTBViewHandExecute(Sender: TObject);
   procedure acConvertExecute(Sender: TObject);
   procedure acConvertUpdate(Sender: TObject);
   procedure acCreateArchiveExecute(Sender: TObject);
   procedure acCreateArchiveUpdate(Sender: TObject);
   procedure acCommandShowExecute(Sender: TObject);
   procedure BtnClearCommandClick(Sender: TObject);
   procedure acExecuteExecute(Sender: TObject);
   procedure acExecuteUpdate(Sender: TObject);
   procedure EditCurrentDirKeyUp(Sender: TObject; var Key: Word;
     Shift: TShiftState);
   procedure acCopyCommandExecute(Sender: TObject);
   procedure acCopyCommandUpdate(Sender: TObject);
   procedure acServerConnectExecute(Sender: TObject);
   procedure acPropertyProjectExecute(Sender: TObject);
   procedure acPropertyProjectUpdate(Sender: TObject);
   procedure acPropertyFtpExecute(Sender: TObject);
   procedure acPropertyFtpUpdate(Sender: TObject);
   procedure acDeleteProjectExecute(Sender: TObject);
   procedure acDeleteProjectUpdate(Sender: TObject);
   procedure acCreateProjectExecute(Sender: TObject);
   procedure acCreateProjectUpdate(Sender: TObject);
   procedure acDeleteFtpExecute(Sender: TObject);
   procedure acDeleteFtpUpdate(Sender: TObject);
   procedure acCreateFtpExecute(Sender: TObject);
   procedure acCreateFtpUpdate(Sender: TObject);
 private { Private declarations }

      procedure ChangeFFiles(const i: Integer);

 public  { Public declarations }

      procedure ShowAlert(const S1, S2: String);
      procedure AddCom(const S: String);
 end;


 
Суслик ©   (2007-04-02 10:39) [1]

Не страдай ерундой

(по доброму сказал суслик)


 
xayam ©   (2007-04-02 10:42) [2]

нужно получить примерно так -

<p:Unit>
   <p:Name>UMForm</p:Name>
   <p:InterfaceSection>
     <p:Uses>
       <p:Name>Windows</p:Name>
       <p:Name>Forms</p:Name>
       <p:Name>Dialogs</p:Name>
       <p:Name>SysUtils</p:Name>
       <p:Name>Classes</p:Name>
       <p:Name>ActnList</p:Name>
       <p:Name>XPStyleActnCtrls</p:Name>
       <p:Name>ActnMan</p:Name>
       <p:Name>Menus</p:Name>
       <p:Name>ActnPopup</p:Name>
       <p:Name>ImgList</p:Name>
       <p:Name>Controls</p:Name>
       <p:Name>CustomizeDlg</p:Name>
       <p:Name>AppEvnts</p:Name>
       <p:Name>Graphics</p:Name>
       <p:Name>JvBaseDlg</p:Name>
       <p:Name>JvDesktopAlert</p:Name>
       <p:Name>JvComponentBase</p:Name>
       <p:Name>JvTrayIcon</p:Name>
       <p:Name>ActnCtrls</p:Name>
       <p:Name>ToolWin</p:Name>
       <p:Name>ActnMenus</p:Name>
       <p:Name>ComCtrls</p:Name>
       <p:Name>JvExComCtrls</p:Name>
       <p:Name>JvStatusBar</p:Name>
       <p:Name>ExtCtrls</p:Name>
       <p:Name>JvPageList</p:Name>
       <p:Name>JvExControls</p:Name>
       <p:Name>JvComponent</p:Name>
       <p:Name>FastMMUsageTracker</p:Name>
       <p:Name>JvgProgress</p:Name>
       <p:Name>SynEdit</p:Name>
       <p:Name>SynMemo</p:Name>
       <p:Name>Buttons</p:Name>
       <p:Name>StdCtrls</p:Name>
       <p:Name>JvExStdCtrls</p:Name>
       <p:Name>JvButton</p:Name>
       <p:Name>JvCtrls</p:Name>
       <p:Name>cxControls</p:Name>
       <p:Name>cxSplitter</p:Name>
       <p:Name>JvExExtCtrls</p:Name>
       <p:Name>JvSplitter</p:Name>
     </p:Uses>
     <p:TypeSection>
       <p:Class>
         <p:Name>TFD2h</p:Name>
         <p:Ancestor>TForm</p:Ancestor>
         <p:Field>
           <p:Name>PageList</p:Name>
           <p:Type>TJvPageList</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>JvStandardPage1</p:Name>
           <p:Type>TJvStandardPage</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>JvStandardPage2</p:Name>
           <p:Type>TJvStandardPage</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>JvStandardPage3</p:Name>
           <p:Type>TJvStandardPage</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>JvStandardPage4</p:Name>
           <p:Type>TJvStandardPage</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>TrayIcon</p:Name>
           <p:Type>TJvTrayIcon</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>DlgAlert</p:Name>
           <p:Type>TJvDesktopAlert</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>ApplicationEvents</p:Name>
           <p:Type>TApplicationEvents</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>AMMenu</p:Name>
           <p:Type>TActionMainMenuBar</p:Type>
         </p:Field>
         <p:Field>
           <p:Name>CustomizeDlg1</p:Name>
           <p:Type>TCustomizeDlg</p:Type>
         </p:Field>
         <p:Field>
...
       <p:Var>
         <p:Name>glNewFtp</p:Name>
         <p:Type>Boolean</p:Type>
         <p:Value>False</p:Value>
       </p:Var>
     </p:VarSection>
   </p:InterfaceSection>
 </p:Unit>


 
xayam ©   (2007-04-02 10:45) [3]

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


> Суслик ©   (02.04.07 10:39) [1]
> Не страдай ерундой

это не ерунда, это принципиально


 
Kerk ©   (2007-04-02 10:52) [4]

Поищи исходники colorer


 
Игорь Шевченко ©   (2007-04-02 10:53) [5]


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


Вот если ты сделаешь перевод паскаля в Abstarct Syntax Tree это будет более интересно. Поищи парсеры паскаля, в том же GExperts есть


 
Чапаев ©   (2007-04-02 11:03) [6]

Такая хрень ([2]) есть в Delphi2005 и выше. Проджект, Опшнс, Компилер, Дженерейт КсыМыЛы документейшн.


 
xayam ©   (2007-04-02 11:10) [7]


> Kerk ©   (02.04.07 10:52) [4]
> Поищи исходники colorer

http://colorer.sourceforge.net/
Так он на си)) Я его конечно в школе учил, но не настолько))

> Игорь Шевченко ©   (02.04.07 10:53) [5]
> это будет более интересно

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

> Чапаев ©   (02.04.07 11:03) [6]
> Такая хрень ([2]) есть в Delphi2005 и выше. Проджект, Опшнс,
>  Компилер, Дженерейт КсыМыЛы документейшн.

для ВСЕГО кода


 
calm ©   (2007-04-02 11:14) [8]


> многие не понимают, что структурированная (и соответственно
> многоуровневая) информация представляет много большую ценность
> чем неструктурированная.

:)))
Практически никто не понимает, особенно программисты :)


 
Игорь Шевченко ©   (2007-04-02 11:14) [9]

Чапаев ©   (02.04.07 11:03) [6]


> Проджект, Опшнс, Компилер, Дженерейт КсыМыЛы документейшн


Это немного не то


 
Чапаев ©   (2007-04-02 11:15) [10]

> [9] Игорь Шевченко ©   (02.04.07 11:14)
Думал и о "том", только так и не придумал, какая от него практическая польза.


 
Calm ©   (2007-04-02 11:17) [11]

Ты дай знать, когда реализуешь.
Интересная задумка.


 
xayam ©   (2007-04-02 11:18) [12]


> Чапаев ©   (02.04.07 11:15) [10]
> > [9] Игорь Шевченко ©   (02.04.07 11:14)
> Думал и о "том", только так и не придумал, какая от него
> практическая польза.

ну для начало - форматирование, подсветка, конвертирование в любой формат, документирование кода... Хватит?


 
Ricko ©   (2007-04-02 11:21) [13]

нет


 
Игорь Шевченко ©   (2007-04-02 11:21) [14]

xayam ©   (02.04.07 11:18) [12]


> ну для начало - форматирование, подсветка, конвертирование
> в любой формат, документирование кода...


Все эти действия очень легко и очевидно проделываются с Abstarct Syntax Tree.


 
xayam ©   (2007-04-02 11:22) [15]


> Ricko ©   (02.04.07 11:21) [13]
> нет

+ схемы типа UML, EBNF, visio и т.д.


 
Чапаев ©   (2007-04-02 11:28) [16]

Цікаво... Надо будет поразмыслить. Заодно и в C# попрактиковаться...


 
Игорь Шевченко ©   (2007-04-02 11:45) [17]


> многие не понимают, что структурированная (и соответственно
> многоуровневая) информация представляет много большую ценность
> чем неструктурированная


опять ты за старое


 
xayam ©   (2007-04-02 11:47) [18]

у меня все равно более универсальный подход чем любой xml))


 
Думкин ©   (2007-04-02 11:51) [19]


> Скажем, имеем такой исходник
> unit UMForm;

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


 
Суслик ©   (2007-04-02 11:56) [20]

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


 
Игорь Шевченко ©   (2007-04-02 12:09) [21]

Суслик ©   (02.04.07 11:56) [20]

Jedi сделал, GExperts сделали...


 
Суслик ©   (2007-04-02 12:20) [22]


> [21] Игорь Шевченко ©   (02.04.07 12:09)
> Суслик ©   (02.04.07 11:56) [20]
>
> Jedi сделал, GExperts сделали...

тем более - зачем ерундой страдать, если сделано уже? :)


 
Gydvin ©   (2007-04-02 13:18) [23]

оффтоп
Кстати о парсерах. Может есть где исходники read and write парсера формата RTF? А то свой пишу, не зря ли?
/оффтоп


 
celades ©   (2007-04-02 13:21) [24]


> для ВСЕГО кода

посмотри тут
http://www.devincook.com/goldparser/grammars/index.htm
есть грамматика для Delphi 7. К ней же и парсер есть. Осталось только синтаксическое дерево и генератор выхода.


 
xayam ©   (2007-04-02 14:06) [25]


> celades ©

спасибо! это ближе))
http://www.devincook.com/goldparser/engine/delphi-rai/rai-delphi-project-tree-D5.zip


 
pasha_golub ©   (2007-04-02 14:35) [26]


> celades ©   (02.04.07 13:21) [24]

Не получится. У Девина грамматика входная не терпит указания приоритетов операций, ассоциативности и прочее.


> xayam ©   (02.04.07 14:06) [25]

Есть у меня такой парсер. Строит дерево, но только для SQL. Сделан на DYACC (Delphi Yacc). Но само по себе дерево абсолютно бесполезно. Только для специфических общих задач. Если нужно будет что-то специализированное, то надо добавлять функциональсть к нодам (узлам).


 
GrayFace ©   (2007-04-02 14:39) [27]

А что из этих парсеров проще использовать для генерации кода на своем языке? А то есть безумная идейка сделать компилятор ERM на основе Дельфи...


 
xayam ©   (2007-04-02 14:40) [28]


> pasha_golub ©   (02.04.07 14:35) [26]
> > celades ©   (02.04.07 13:21) [24]
> Не получится. У Девина грамматика входная не терпит указания
> приоритетов операций, ассоциативности и прочее.

а зачем мне приоритеты операций? ассоциативности чего?


 
pasha_golub ©   (2007-04-02 14:40) [29]


> GrayFace ©   (02.04.07 14:39) [27]
>
> А что из этих парсеров проще использовать для генерации
> кода на своем языке? А то есть безумная идейка сделать компилятор
> ERM на основе Дельфи...

Поясните-ка с деталями.


 
xayam ©   (2007-04-02 14:49) [30]


> pasha_golub ©   (02.04.07 14:35) [26]
>  Но само по себе дерево абсолютно бесполезно.

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

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

нет. Для любых задач, связанных с исходных кодом. Но для этого одного знания xml мало, понадобится еще xlink, xpath, xquery, xslt, xsl-fo, xsd. Как минимум. Ничего не забыл?


 
celades ©   (2007-04-02 14:50) [31]


> Не получится. У Девина грамматика входная не терпит указания
> приоритетов операций, ассоциативности и прочее.

Не понимаю о чем ты и что такое "Девин". Всё там хорошо и всё получится.


 
pasha_golub ©   (2007-04-02 15:01) [32]


> xayam ©   (02.04.07 14:40) [28]


> а зачем мне приоритеты операций?

Например, имеем простенькую грамматику:

%token NUM
%%
expr : expr ’+’ expr
| expr ’*’ expr
| ’(’ expr ’)’
| NUM
;


Она неоднозначна, ибо выражение вида a + b * c она может разобрать как
(a + b) * c либо a + (b * c).

Такую неоднозначность можно преодолеть двумя путями:

1. Переписать грамматику, например так:

%token NUM
%%
expr : term
| expr ’+’ term
;
term : factor
| term ’*’ factor
;
factor : ’(’ expr ’)’
| NUM
;


2. Явно указать приоритеты операций
%token NUM
%left ’+’
%left ’*’
%%
expr : expr ’+’ expr
| expr ’*’ expr
| ’(’ expr ’)’
| NUM
;


В грамматиках Gold Parser"a можно использовать только второй вариант. Для приведенной в хелпе Delphi формальной грамматики Паскаля этого хватит. Но существует множество грамматик, в которых перкводить выражения очень громоздко.


 
pasha_golub ©   (2007-04-02 15:02) [33]


> celades ©   (02.04.07 14:50) [31]


> Не понимаю о чем ты и что такое "Девин".

Девин Кук (Devin Cook) автор Gold Parser"a.


> Всё там хорошо и всё получится.

Тогда нет вопросов. :) Делайте


 
pasha_golub ©   (2007-04-02 15:03) [34]


> xayam ©   (02.04.07 14:49) [30]


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

А что код в файле текстовом беспорядочен? :) Он тоже упорядочен. Есть у вас дерево, например, что вы с ним можете сделать?


 
xayam ©   (2007-04-02 15:20) [35]


> pasha_golub ©   (02.04.07 15:01) [32]

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

> pasha_golub ©   (02.04.07 15:03) [34]
>  Есть у вас дерево, например, что вы с ним можете сделать?

[12], [15]... этого мало? Посмотрите исходники SynEdit"а, если бы они подумали раньше и построили дерево, то выходных форматов было бы больше и кода для реализации было бы гораздо меньше))


 
pasha_golub ©   (2007-04-02 15:20) [36]


> celades ©   (02.04.07 14:50) [31]
>
>
> > Не получится. У Девина грамматика входная не терпит указания
> > приоритетов операций, ассоциативности и прочее.
>
> Не понимаю о чем ты и что такое "Девин". Всё там хорошо
> и всё получится.
>

Вот глянь сюда:

http://www.devincook.com/goldparser/doc/meta-language/index.htm

Operator precedence is an important aspect of most programming languages. The following rules define the common arithmetic operators.
<Expression> ::= <Expression> "+" <Mult Exp>
              | <Expression> "-" <Mult Exp>
              | <Mult Exp>

<Mult Exp>   ::= <Mult Exp> "*" <Negate Exp>
              | <Mult Exp> "/" <Negate Exp>
              | <Negate Exp>

<Negate Exp> ::= "-" <Value>
              | <Value>

<Value>      ::= ID
              | Integer
              | "(" <Expression> ")"


То о чем я говорил. А если у меня 100 операций и все с разными приоритетами, то мне придется навернуть 100 правил, вместо одного.

И кстати, вернемся к примеру из 32 поста. Дерево разбора с использованием указания приоритета будет выглядеть так:


[+]
|- NUM
|- +
|- expr
    |- NUM
    |- *
    |- NUM  


А дерево разбора без указания приоритетов будет выглядеть так:

[+]
|- term
    |- factor
          |- NUM
|- +
|- expr
    |- term
         |- term
              |- factor
                  |- NUM
    |- *
    |- factor
         |- NUM  


В деревьях мог порядок напутать, но смысл понятен.


 
pasha_golub ©   (2007-04-02 15:23) [37]


> да, но я не собираюсь писать компилятор

Да, но вы не сможете разобрать то, что есть!


> Посмотрите исходники SynEdit"а, если бы они подумали раньше
> и построили дерево, то выходных форматов было бы больше
> и кода для реализации было бы гораздо меньше))

Я не думаю, что программисты SynEdit"а глупее, чем Вы и я. :) А вы думали над тем, что не все файлы можно разобрать. А задача подсветки синтаксиса работать даже не неверных данных, например

for i := 0 to 10 do
bedgin
 ...
end;

Парсер на этих входных данных не отработает, ибо у меня опечатка в слове begin. А подсветка отработать должна.


 
xayam ©   (2007-04-02 15:27) [38]

AddExpr> ::= <AddExpr> <AddOp> <MulExpr>
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--<RefId> ::=
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--a
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--<AddOp> ::= "+"
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--+
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--<MulExpr> ::= <MulExpr> <MulOp> <Factor>
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--<RefId> ::=
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--b
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--<MulOp> ::= "*"
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--*
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--<RefId> ::=
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--c
|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  +--;


 
pasha_golub ©   (2007-04-02 15:29) [39]


> xayam ©   (02.04.07 15:27) [38]

Используйте теги CODE


 
xayam ©   (2007-04-02 15:29) [40]


> pasha_golub ©   (02.04.07 15:23) [37]
> Да, но вы не сможете разобрать то, что есть!

уже разобрал))

> А вы думали над тем, что не все файлы можно разобрать.

первым делом)) не разбираются - значит не компилируются. Так? А зачем мне такие исходники? ))


 
pasha_golub ©   (2007-04-02 15:41) [41]


> xayam ©   (02.04.07 15:29) [40]


> уже разобрал))

Видел. :) Для Паскаля приведена однозначная формальная грамматика. Поэтому и получается.


> первым делом)) не разбираются - значит не компилируются.
>  Так? А зачем мне такие исходники? ))

Ну... Это знаете ли существенное ограничение.


 
pasha_golub ©   (2007-04-02 15:44) [42]

http://www.devincook.com/goldparser/doc/meta-language/index.htm

Вот, кстати написано у Девина про проблему shift/reduce, которую придется решать программисту в случае использования Gold Parser"a. А, например, yacc решает это сам, уведомляя в log-файле предупреждением.


 
xayam ©   (2007-04-02 15:51) [43]


> pasha_golub ©   (02.04.07 15:41) [41]
> Ну... Это знаете ли существенное ограничение.

ну вот займитесь на досуге созданием правил в грамматике, благо она в отдельном файле и на сам алгоритм формирования дерева не влияет имхо. Хорошее дело))


 
McSimm_   (2007-04-02 15:58) [44]


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

Создать файл грамматики для паскалевского текста с произвольными ошибками?

амбициозно...
:)


 
xayam ©   (2007-04-02 16:09) [45]


> McSimm_   (02.04.07 15:58) [44]
> > займитесь на досуге созданием правил в грамматике,
> Создать файл грамматики для паскалевского текста с произвольными
> ошибками?
> амбициозно...
> :)

шучу


 
pasha_golub ©   (2007-04-02 16:34) [46]

И еще ограничение. Файл должен быть валидным полностью, то есть с указанием заглавия (Unit, Program, Package, Library) и т.п.

А мне для документации нужно иногда только методы. А еще я иногда использую include механизм. А include он может быть не валидным исходником... Вообщем, многовато "но"...


 
Alkid ©   (2007-04-02 16:39) [47]

Идея интересная по двум причинам:
1. Можно генерировать нормальные метаданные для не-.NET Дельфей.
2. Можно реализовывать метапрограммирование.

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


 
xayam ©   (2007-04-02 16:42) [48]


> pasha_golub ©   (02.04.07 16:34) [46]
> И еще ограничение. Файл должен быть валидным полностью,
> то есть с указанием заглавия (Unit, Program, Package, Library)
> и т.п.

да обязательно, это конечно ограничение, но хорошее и нужное

> А еще я иногда использую include механизм. А include он
> может быть не валидным исходником

это не проблема, нужно на автомате заменить директивы include на содержимое и потом парсить


 
Kerk ©   (2007-04-02 16:44) [49]

> [48] xayam ©   (02.04.07 16:42)

А условную компиляцию как парсить собрался? :)


 
xayam ©   (2007-04-02 16:45) [50]


> Kerk ©   (02.04.07 16:44) [49]
> > [48] xayam ©   (02.04.07 16:42)
> А условную компиляцию как парсить собрался? :)

и комментарии еще обрезаются, проблем хватает кто спорит


 
Ega23 ©   (2007-04-02 16:53) [51]


> А условную компиляцию как парсить собрался? :)
>


По ифам, вестимо...


 
Kerk ©   (2007-04-02 16:59) [52]

> [51] Ega23 ©   (02.04.07 16:53)

Это понятно. Но интерпретатор придется писать.


 
xayam ©   (2007-04-02 17:14) [53]

меня еще размер проги беспокоит. Если это все получится реализовать и прога в полном комплекте будет весить скажем метров 10. Кто-нибудь ее будет качать?


 
Kerk ©   (2007-04-02 17:15) [54]

> [53] xayam ©   (02.04.07 17:14)

Странные у тебя проблемы :)


 
Ega23 ©   (2007-04-02 17:17) [55]


> меня еще размер проги беспокоит. Если это все получится
> реализовать и прога в полном комплекте будет весить скажем
> метров 10. Кто-нибудь ее будет качать?


Не хочу показаться бестактным, но есть у меня подозрение, что её никто не будет качать, даже если она в 1000 раз меньше будет весить...


 
Alkid ©   (2007-04-02 17:24) [56]


> > меня еще размер проги беспокоит. Если это все получится
> > реализовать и прога в полном комплекте будет весить скажем
> > метров 10. Кто-нибудь ее будет качать?
>
> Не хочу показаться бестактным, но есть у меня подозрение,
>  что её никто не будет качать, даже если она в 1000 раз
> меньше будет весить...

Крайне поддерживаю.
Если уж вы так озабочены двиганием вперёд программерской индустрии, которую сами программисты двинуть неспособны хронически (ну не хотим мы структурировать код!), то лучше начинайте с более внятных и приближенных к реалям целей, а не с конкретных инструменторв и технологий.

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


 
pasha_golub ©   (2007-04-02 17:30) [57]


> Kerk ©   (02.04.07 16:59) [52]
>
> > [51] Ega23 ©   (02.04.07 16:53)
>
> Это понятно. Но интерпретатор придется писать.
>

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


 
jack128 ©   (2007-04-02 17:43) [58]

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


 
xayam ©   (2007-04-02 17:46) [59]


> jack128 ©   (02.04.07 17:43) [58]
> По хорошему - IDE сама должна предоставлять полностью разобранный
> код через тулз апи, коль она так и так его парсит непрерывно.

но этого же нет?


 
Ega23 ©   (2007-04-02 17:48) [60]


> но этого же нет?


Вопрос: а зачем?


 
xayam ©   (2007-04-02 18:01) [61]


> Ega23 ©   (02.04.07 17:48) [60]
> > но этого же нет?
> Вопрос: а зачем?

разобранный код? уже два раза точно отвечал)) [12] [15]...


 
Ega23 ©   (2007-04-02 18:03) [62]


> разобранный код? уже два раза точно отвечал)) [12] [15].
> ..


Пардон, а Вы UML-диаграммы по готовому коду строите? А то я, признаццо, как-то по-старинке привык - наоборот...


 
xayam ©   (2007-04-02 18:08) [63]


> Ega23 ©   (02.04.07 18:03) [62]
> > разобранный код? уже два раза точно отвечал)) [12] [15].
> Пардон, а Вы UML-диаграммы по готовому коду строите? А то
> я, признаццо, как-то по-старинке привык - наоборот...

вообще надо в обе стороны


 
pasha_golub ©   (2007-04-02 21:55) [64]


> xayam ©   (02.04.07 18:01) [61]


> разобранный код? уже два раза точно отвечал)) [12] [15].
> ..

Увы, вам. Нету там ничего конкретного. Приведете пример реальный? Идею подсветки синтаксиса я, по-моему, развенчал?


 
xayam ©   (2007-04-02 22:25) [65]


> pasha_golub ©   (02.04.07 21:55) [64]
> > xayam ©   (02.04.07 18:01) [61]
> > разобранный код? уже два раза точно отвечал)) [12] [15].
> Увы, вам. Нету там ничего конкретного. Приведете пример
> реальный? Идею подсветки синтаксиса я, по-моему, развенчал?

Ну подсветка это мелковато, если честно, тем более SynEdit есть. А что не реального в форматировании, конвертировании в pdf, xhtml и т.д., схемах, да вообще в любом виде каком только могут придумать, хоть для человека в каком-то визуальном плане, хоть для любой другой системы, которая понимает строго определенный формат? для таких преобразований есть xslt.


 
Игорь Шевченко ©   (2007-04-03 10:04) [66]

xayam ©   (02.04.07 22:25) [65]


> А что не реального в форматировании, конвертировании в pdf,
>  xhtml и т.д.,


А зачем оно надо ?

Вот если у тебя что-то вроде http://rsdn.ru/projects/rsharp/article/rsharp_mag.xml получится, тогда, безусловно, стоит тратить силы, а на преобразование в разные форматы - ни уму, ни сердцу, ни, пардон, кошельку.


 
xayam ©   (2007-04-03 10:21) [67]


> Игорь Шевченко ©   (03.04.07 10:04) [66]
> xayam ©   (02.04.07 22:25) [65]
> > А что не реального в форматировании, конвертировании в
> > pdf, xhtml и т.д.,
> А зачем оно надо ?

как выяснилось даже xml сложно сделать, а до остального вообще не понятно когда дойду. А применение этому можно найти где угодно, в принципе можно будет даже через браузер просматривать/редактировать исходники, даже в образовательных целях и т.д. Будет проще построить транслятор, если скажем имеем два (в общем случае n) разных языка программирования и исходники каждого можно преобразовать в такой xml-подобный, то и между ними преобразование реализовывается гораздо быстрее, проще и т.д. Короче приходим к тому с чего я и начинал говорить (если кто не помнит - http://xayam.by.ru/index.shtml?section=theoryall&subsection=level2 [93]) - это независимость от платформы для любого языка, но это конечно более сложная задача, чем просто получить xml файл.


 
xayam ©   (2007-04-03 10:31) [68]


> Будет проще построить транслятор

Или это генератор называется? опять с терминологией проблемы))


 
xayam ©   (2007-04-03 10:35) [69]


> Игорь Шевченко ©   (03.04.07 10:04) [66]
> А зачем оно надо ?
> Вот если у тебя что-то вроде http://rsdn.ru/projects/rsharp/article/rsharp_mag.
> xml получится

да! это именно то о чем я говорю, только C# )) Автор статью очень хорошо видит проблему, имхо.


 
xayam ©   (2007-04-03 10:37) [70]

статью:= статьи


 
Игорь Шевченко ©   (2007-04-03 10:46) [71]


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


Исходники в образовательных целях можно смотреть в любом редакторе, например в связке Far+Colorer, незачем тратить время на изобретение квадратного колеса.


 
xayam ©   (2007-04-03 10:51) [72]


> Игорь Шевченко ©   (03.04.07 10:46) [71]
> Исходники в образовательных целях можно смотреть в любом
> редакторе, например в связке Far+Colorer, незачем тратить
> время на изобретение квадратного колеса.

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


 
Ega23 ©   (2007-04-03 10:52) [73]


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


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


 
xayam ©   (2007-04-03 10:54) [74]


> Ega23 ©   (03.04.07 10:52) [73]
> Зачем ратить драгоценное время на изобретение велисапеда?

где достать такой велосипед? ))

> Который, вдобавок, никому не нужен?

мне нужен ))


 
Игорь Шевченко ©   (2007-04-03 11:05) [75]


> да но через браузер я могу посмотреть исходники не закачивая


Сам понял, что сказал ?


 
xayam ©   (2007-04-03 11:09) [76]


> Игорь Шевченко ©   (03.04.07 11:05) [75]
> > да но через браузер я могу посмотреть исходники не закачивая
> Сам понял, что сказал ?

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

> Игорь Шевченко ©   (03.04.07 10:04) [66]
http://rsdn.ru/projects/rsharp/article/rsharp_mag.xml

я может не все прочитал, но не понял. У них xsd-схема на все это дело есть?


 
Игорь Шевченко ©   (2007-04-03 11:10) [77]

xayam ©   (03.04.07 11:09) [76]


> У них xsd-схема на все это дело есть?


Зачем ?


 
xayam ©   (2007-04-03 11:13) [78]


> Игорь Шевченко ©   (03.04.07 11:10) [77]
> xayam ©   (03.04.07 11:09) [76]
> > У них xsd-схема на всеГО это дело есть?
> Зачем ?

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


 
Ega23 ©   (2007-04-03 11:14) [79]


> xayam ©


Ты счастливый человек...


 
Игорь Шевченко ©   (2007-04-03 11:16) [80]

xayam ©   (03.04.07 11:13) [78]


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


Все равно не понимаю. У тебя для паскаля xsd-схема есть ? Или для C# ?


 
xayam ©   (2007-04-03 11:19) [81]


> Игорь Шевченко ©   (03.04.07 11:16) [80]
> xayam ©   (03.04.07 11:13) [78]
> > как зачем? хотя бы чтобы проверить на правильность, для
> > отладки все равно понадобится.
> Все равно не понимаю. У тебя для паскаля xsd-схема есть
> ? Или для C# ?

нету конечно)) поэтому и спрашиваю, но если была для C# то для паскаля проще было бы сделать, хотя кто знает. На С# вообще не писал ничего и не тянет.


 
Игорь Шевченко ©   (2007-04-03 11:22) [82]

xayam ©   (03.04.07 11:19) [81]

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


 
xayam ©   (2007-04-03 11:27) [83]


> Игорь Шевченко ©   (03.04.07 11:22) [82]
> xayam ©   (03.04.07 11:19) [81]
> На правильность обычно проверяет компилятор и прекрасно
> обходится без xsd-схемы, одной лишь грамматикой.

так нужно же сам xml (или назвать его XPS - XML Pascal Sources ?) проверить обязательно, потому что если в алгоритме формирования xps есть ошибка, то сразу можно не заметить, а так схема под рукой. Идеально конечно конвертер grm в xsd, но это надо и то и другое знать, к сожалению на сегодня я только паскаль знаю более-менее.


 
Игорь Шевченко ©   (2007-04-03 11:31) [84]

xayam ©   (03.04.07 11:27) [83]

А откуда вообще берется Xml - я этот момент как-то пропустил...


 
xayam ©   (2007-04-03 11:34) [85]


> Игорь Шевченко ©   (03.04.07 11:31) [84]
> xayam ©   (03.04.07 11:27) [83]
> А откуда вообще берется Xml - я этот момент как-то пропустил.

доработкой [25]. В процессе пока. Консольное приложение сделаю примерно с таким синтаксисом

pas2xps.exe [<switch>] <filename_CGT> <filename_sources> [<filename_output>]
   
   <switch>            ::= <switch_symbol><switch_characters>[<option>]

   <switch_symbol>     ::= "/" | "-"
       
   <switch_characters> ::= "a" | "b" | "c" ... "x" | "y" | "z"


 
Alkid ©   (2007-04-03 14:14) [86]


> Короче приходим к тому с чего я и начинал говорить (если
> кто не помнит - http://xayam.by.ru/index.shtml?section=theoryall&subsection=level2
> [93]) - это независимость от платформы для любого языка,
>  но это конечно более сложная задача, чем просто получить
> xml файл.

Это, простите, мне уже очень интересно :)
Поясните, что есть "независимость языка от платформы"?
Как вы собираетесь делать независимым от платформы Дельфи, чем вас не устраивает независимость от платформы Java и C++?


 
xayam ©   (2007-04-03 14:29) [87]


> Alkid ©   (03.04.07 14:14) [86]
> Это, простите, мне уже очень интересно :)

тенденция? ))

> Поясните, что есть "независимость языка от платформы"?

имелось ввиду создание эдакого общего xml-языка, к которому можно привести исходный код, написанный на любом языке программирования (по крайне мере объектно-ориентированных и процедурных), тогда не важно будет на чем писать действительно, потому что исходный код, находящейся в xml-дереве можно будет преобразовать в исходный текст для любого компилятора, написав соответствующий xslt-файл. Для каждого языка конечно понадобится xsd-схема. Но это наверно еще более сложно, чем я тут расписываю))

> Как вы собираетесь делать независимым от платформы Дельфи,
>  чем вас не устраивает независимость от платформы Java и
> C++?

не знаю таких языков)) и вообще не полиглот, с аглицким тоже бывают проблемы.


 
Kerk ©   (2007-04-03 14:31) [88]

[87] xayam ©   (03.04.07 14:29)
> потому что исходный код, находящейся в xml-дереве можно
> будет преобразовать в исходный текст для любого компилятора,
> написав соответствующий xslt-файл.

Утопия. Тогда в XML-вид придется переводить и всякие VCLы, RTLы.. в общем вообще ВСЕ.


 
Vovan The One   (2007-04-03 14:33) [89]

Вот, что значит компонентометательство. Ты предагал свою DelphiTo на основе SynEdit или чего-там, а когда функционал закончился, ничего не можешь сделать.


 
Alkid ©   (2007-04-03 14:34) [90]


> имелось ввиду создание эдакого общего xml-языка, к которому
> можно привести исходный код, написанный на любом языке программирования
> (по крайне мере объектно-ориентированных и процедурных),
>  тогда не важно будет на чем писать действительно, потому
> что исходный код, находящейся в xml-дереве можно будет преобразовать
> в исходный текст для любого компилятора, написав соответствующий
> xslt-файл. Для каждого языка конечно понадобится xsd-схема.
>  Но это наверно еще более сложно, чем я тут расписываю))

Хорошо, а чем вас не устраивает MSIL? Платформонезависимый язык, который используется для генерации кода с языков высокого уровня (С++/CLI, C#, VB.NET, Nemerle, и т.п.). Вполне справляется со своей задачей.


> не знаю таких языков)) и вообще не полиглот, с аглицким
> тоже бывают проблемы.

Вы не знаете что есть такие языки программирования как C++ и Java и пытаетесь осчастливить мир решением глобальных проблемм на ниве разработки ПО?!

Я в шоке.

Может быть перед тем как решать сверхглобальные задачи стоит ознакомиться с текущим положением дел? И не придумывать стойла для сферических коней.


 
xayam ©   (2007-04-03 14:34) [91]


> Kerk ©   (03.04.07 14:31) [88]
> [87] xayam ©   (03.04.07 14:29)
> > потому что исходный код, находящейся в xml-дереве можно
> > будет преобразовать в исходный текст для любого компилятора,
> > написав соответствующий xslt-файл.
> Утопия. Тогда в XML-вид придется переводить и всякие VCLы,
>  RTLы.. в общем вообще ВСЕ.

Керк, это самое простое, нажал на кнопку и все обработалось. Щас занят тем, что пишу обработчик для этой кнопки))


 
Alkid ©   (2007-04-03 14:35) [92]


> Утопия. Тогда в XML-вид придется переводить и всякие VCLы,
>  RTLы.. в общем вообще ВСЕ.

В скобках замечу, что VCL/RTL имеют обращения к API платформ, которые ты уже никак не "обернёшь" в XML. Придётся писать свою платформу, абстрагирующую эти API. Короче, будет вторая Java или .NET.


 
xayam ©   (2007-04-03 14:41) [93]


> Alkid ©   (03.04.07 14:34) [90]
> Хорошо, а чем вас не устраивает MSIL? Платформонезависимый
> язык, который используется для генерации кода с языков высокого
> уровня (С++/CLI, C#, VB.NET, Nemerle, и т.п.). Вполне справляется
> со своей задачей.

Че правдо что ли? А исходники к этой генерации есть? На паскале? Отформатированы? Ссылкой желательно))

> Вы не знаете что есть такие языки программирования как C++
> и Java и пытаетесь осчастливить мир решением глобальных
> проблемм на ниве разработки ПО?!

ну конечно, один человек не может знать всего

> Может быть перед тем как решать сверхглобальные задачи стоит
> ознакомиться с текущим положением дел?

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

> Короче, будет вторая Java или .NET.

это уже третья получается))


 
Alkid ©   (2007-04-03 14:53) [94]


> Че правдо что ли? А исходники к этой генерации есть? На
> паскале? Отформатированы? Ссылкой желательно))

Простите, к какой генерации? MSIL - это стандарт. Microsoft вообще стандартизовала весь .NET в ECMA. Пиши компилятор своего языка в MSIL и будет тебе платформонезависимое представление. Для паскаля есть уже Delphi для .NET. Однако, замечу, это не имеет отношения к reverse engineering`у, coding style enforcment`у и т.п.


> ну конечно, один человек не может знать всего

Кхе-кхе. C/C++, Java и C# - это основные промышленные языки программирования на которых сейчас в мире пишется почти весь коммерчески и некоммерческий софт. (Господа дельфисты, не ругайтесь, но Delphi это тройке по совокупности проигрывает со свистом). Сложно решать проблемы индустрии разработки ПО, если не иметь представления об основных средствах разработки. Я не говорю - знать детально, но представлять себе их особенности и возможности надо. Так же желательно разбираться в проектировании софта, организации процесса разработки и вообще жизненного цикла. Без этого любые попытки придумать что-то новое и концептуальное в данной области обречены на провал. Окажется, что либо кто-то уже это придумал и внедрил, либо это всё настолько не по делу, что реально не применишь.


 
xayam ©   (2007-04-03 15:10) [95]


> Alkid ©   (03.04.07 14:53) [94]
> MSIL - это стандарт

ну а файл записанный по этому стандарту. Вот про генерацию этого файла я говорю. Можете привести кусок такого файла?

> Microsoft вообще стандартизовала весь .NET в ECMA

"Стандарты приходят и уходят"

> C/C++, Java и C# - это основные промышленные языки программирования
> на которых сейчас в мире пишется почти весь коммерчески
> и некоммерческий софт. (Господа дельфисты, не ругайтесь,
>  но Delphi это тройке по совокупности проигрывает со свистом).

это смотря для кого, у меня на первом месте.

> Без этого любые попытки придумать что-то новое и концептуальное
> в данной области обречены на провал. Окажется, что либо
> кто-то уже это придумал и внедрил, либо это всё настолько
> не по делу, что реально не применишь.

с Вами тоже не применишь, это пока все познавать будешь, все новое мимо пройдет))


 
Kerk ©   (2007-04-03 15:11) [96]

> ну а файл записанный по этому стандарту. Вот про генерацию
> этого файла я говорю. Можете привести кусок такого файла?


 
Kerk ©   (2007-04-03 15:12) [97]

Мда


 
McSimm_   (2007-04-03 15:20) [98]


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


Заблуждение. Ваши XML для C и Pascal будут получаться разными. И вы не сможете преобразовывать одно в другое. XML может лишь описать программу "другими словами", но с различиями самих языков он ничего поделать не сможет.


 
Alkid ©   (2007-04-03 15:23) [99]


> ну а файл записанный по этому стандарту. Вот про генерацию
> этого файла я говорю. Можете привести кусок такого файла?
>


Пожалуйста:

//  Microsoft (R) .NET Framework IL Disassembler.  Version 1.1.4322.573
//  Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

.assembly extern mscorlib
{
 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
 .ver 1:0:5000:0
}
.assembly ConsoleApplication1
{
 .custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyKeyFileAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyDelaySignAttribute::.ctor(bool) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyKeyNameAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 00 00 00 )
 .custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 00 00 00 )
 // --- The following custom attribute is added automatically, do not uncomment -------
 //  .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(bool,
 //                                                                                bool) = ( 01 00 01 01 00 00 )
 .hash algorithm 0x00008004
 .ver 1:0:2649:25938
}
.module ConsoleApplication1.exe
// MVID: {DDD0202E-2F60-41AF-8614-531AF5849FBC}
.imagebase 0x00400000
.subsystem 0x00000003
.file alignment 4096
.corflags 0x00000001
// Image base: 0x04090000
//
// ============== CLASS STRUCTURE DECLARATION ==================
//
.namespace ConsoleApplication1
{
 .class private auto ansi beforefieldinit Class1
        extends [mscorlib]System.Object
 {
 } // end of class Class1

} // end of namespace ConsoleApplication1

// =============================================================

// =============== GLOBAL FIELDS AND METHODS ===================

// =============================================================

// =============== CLASS MEMBERS DECLARATION ===================
//   note that class flags, "extends" and "implements" clauses
//          are provided here for information only

.namespace ConsoleApplication1
{
 .class private auto ansi beforefieldinit Class1
        extends [mscorlib]System.Object
 {
   .method private hidebysig static void
           Main(string[] args) cil managed
   {
     .entrypoint
     .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
     // Code size       16 (0x10)
     .maxstack  2
     IL_0000:  call       class [mscorlib]System.IO.TextWriter [mscorlib]System.Console::get_Out()
     IL_0005:  ldstr      "Hello, world"
     IL_000a:  callvirt   instance void [mscorlib]System.IO.TextWriter::WriteLine(string)
     IL_000f:  ret
   } // end of method Class1::Main

   .method public hidebysig specialname rtspecialname
           instance void  .ctor() cil managed
   {
     // Code size       7 (0x7)
     .maxstack  1
     IL_0000:  ldarg.0
     IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
     IL_0006:  ret
   } // end of method Class1::.ctor

 } // end of class Class1

// =============================================================

} // end of namespace ConsoleApplication1


 
Alkid ©   (2007-04-03 15:25) [100]

Сие есть MSIL-сочинение на тему "Hello World". Было писано на C#. Если написать на VB, то будет примерно то же самое.


> это смотря для кого, у меня на первом месте.
> ...
> с Вами тоже не применишь, это пока все познавать будешь,
>  все новое мимо пройдет))

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


 
xayam ©   (2007-04-03 15:29) [101]


> Alkid ©   (03.04.07 15:23) [99]

ааа понятно, но мне xml ближе все же, чем это ^.
Понимаете нужна чистая структура, и ее я не променяю на любое имя известной фирмы, извините нам в разные стороны.


> McSimm_   (03.04.07 15:20) [98]
> Заблуждение. Ваши XML для C и Pascal будут получаться разными.
>  И вы не сможете преобразовывать одно в другое. XML может
> лишь описать программу "другими словами", но с различиями
> самих языков он ничего поделать не сможет.

опять же, xml это только хранилище кода, а схемы, преобразования конечно различны.


 
xayam ©   (2007-04-03 15:31) [102]


> Alkid ©   (03.04.07 15:25) [100]
> Сие есть MSIL-сочинение на тему "Hello World". Было писано
> на C#. Если написать на VB, то будет примерно...

как это примерно? должно быть точно, писатели блин (это я не про Вас) ))


 
McSimm_   (2007-04-03 15:34) [103]


> xayam ©   (03.04.07 15:29) [101]

Я к тому, что

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


нереально.


 
xayam ©   (2007-04-03 15:38) [104]


> McSimm_   (03.04.07 15:34) [103]
> > xayam ©   (03.04.07 15:29) [101]
> Я к тому, что
> > исходный код, находящейся в xml-дереве можно будет преобразовать
> > в исходный текст для любого компилятора
> нереально.

ну если с delphi на fpc переведет, то мне хватит


 
Alkid ©   (2007-04-03 15:40) [105]


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

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


> к это примерно? должно быть точно, писатели блин (это я
> не про Вас) ))

Почему должно быть точно? Должно быть совместимо. Т.е. можно программу написать на VB, скомпилировать в MSIL и потом из MSIL отреверсить в программу на C#. Или написать класс на C++/CLI, а потом на C# написать класс-наследник.

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


 
Kerk ©   (2007-04-03 15:41) [106]

Ощущение, что вскоре мы увидим Автошему2. Без обид.


 
xayam ©   (2007-04-03 15:46) [107]


> Alkid ©   (03.04.07 15:40) [105]
> Поясните мне, плз, в чём принципиальная разинца XML-представлением
> и файла с вышеприведённым синтаксисом?

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

> Kerk ©   (03.04.07 15:41) [106]
> Ощущение, что вскоре мы увидим Автошему2

может все же xps? ))

> Без обид.

нет конечно, зачем.


 
Alkid ©   (2007-04-03 15:51) [108]


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

:) Когда-то Вы писали, что программисты узко понимают значение слов да и вообще смотрят на вещи узко. Сейчас вы являете миру ещё один пример узости взглядов. Если вы знаете одну технологию или стандарт - это не значит, что для решения выбранной задачи они становятся автоматически самыми лучшими.


 
xayam ©   (2007-04-03 15:53) [109]


> Alkid ©   (03.04.07 15:51) [108]
> :) Когда-то Вы писали, что программисты узко понимают значение
> слов да и вообще смотрят на вещи узко. Сейчас вы являете
> миру ещё один пример узости взглядов. Если вы знаете одну
> технологию или стандарт - это не значит, что для решения
> выбранной задачи они становятся автоматически самыми лучшими.

у меня хорошие ученики)) но в MSIL необходимости пока нет, не убедите))


 
Kerk ©   (2007-04-03 15:54) [110]

[109] xayam ©   (03.04.07 15:53)
> но в MSIL необходимости пока нет, не убедите))

Как тебя в этом убедить, если ты не знаешь, что такое MSIL?


 
xayam ©   (2007-04-03 15:56) [111]


> Kerk ©   (03.04.07 15:54) [110]
> [109] xayam ©   (03.04.07 15:53)
> > но в MSIL необходимости пока нет, не убедите))
> Как тебя в этом убедить, если ты не знаешь, что такое MSIL?

показать что он более структурированный, но уже показали обратное


 
Игорь Шевченко ©   (2007-04-03 15:58) [112]

McSimm_   (03.04.07 15:34) [103]


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


Я считаю, что вполне реально. Только это будет совершенно новый язык :)


 
Alkid ©   (2007-04-03 16:00) [113]


> у меня хорошие ученики)) но в MSIL необходимости пока нет,
>  не убедите))

Да я не пропагандирую MSIL или .NET. Я пропагандирую в корне другой подход к делу - расширять свой кругозор и не замыкаться на том, что знаешь. Без некоторой широты взглядов слишком легко пойти не в том направлении просто потому, что более оптимальный путь просто не попал в узкое поле зрения.


> показать что он более структурированный, но уже показали
> обратное

Оба-на :)

Слушайте, а расскажите мне, пожалуйста, почему XML более структурированный чем MSIL? Мне просто не только это совсем не очевидно, но и не понятен набор критериев, которым Вы пользуетесь.


 
xayam ©   (2007-04-03 16:10) [114]


> Alkid ©   (03.04.07 16:00) [113]
> Слушайте, а расскажите мне, пожалуйста, почему XML более
> структурированный чем MSIL?

да даже визуально посмотрите [2] и [99] - нет разницы?????

> Да я не пропагандирую MSIL или .NET. Я пропагандирую в корне
> другой подход к делу - расширять свой кругозор и не замыкаться
> на том, что знаешь.

я как раз и не замыкаюсь, по-Вашему с такими стандартами за раз справишься?
http://www.w3.org/XML/
http://www.w3.org/XML/Query
http://www.w3.org/Style/XSL/
http://www.w3.org/XML/Linking
http://www.w3.org/XML/Schema

Просто мы идем в разные стороны.


 
Игорь Шевченко ©   (2007-04-03 16:13) [115]

xayam ©   (03.04.07 16:10) [114]


> да даже визуально посмотрите [2] и [99] - нет разницы???
> ??


К сожалению, визуальной компиляции еще не придумали. А для машинной компиляции msil самое оно


 
Alkid ©   (2007-04-03 16:16) [116]


> К сожалению, визуальной компиляции еще не придумали. А для
> машинной компиляции msil самое оно

А что такое "визуальная компиляция"?


 
Alkid ©   (2007-04-03 16:19) [117]


> да даже визуально посмотрите [2] и [99] - нет разницы???
> ??

Это не аргумент. Это субъективно. А меня интересуют объективные критерии.
Более того, меня интересует сама суть сравнительной степени понятия "структурированность" для языков программирования. Поймите, я не пытаюсь пропагандировать одну технологию или отрицать другую. Меня интересует методика, сам подход. Если было сказано, что "язык А более структурирован, чем язык B", то я хочу увидеть разумные объективные аргументы в пользу такого мнения, ибо мне интересно.


 
xayam ©   (2007-04-03 16:22) [118]


> Alkid ©   (03.04.07 16:19) [117]
> Меня интересует методика, сам подход.

методика была изложена в Теории всего.


 
Alkid ©   (2007-04-03 16:23) [119]


> методика была изложена в Теории всего.

Т.е. тут, простыми словами никак не объяснить?


 
xayam ©   (2007-04-03 16:25) [120]


> Alkid ©   (03.04.07 16:23) [119]
> > методика была изложена в Теории всего.
> Т.е. тут, простыми словами никак не объяснить?

Объяснялось же, основные требование - независимость, многоуровневость, вложенность, приоритеты уровней. XML удовлетворяет всем требованиям.


 
Игорь Шевченко ©   (2007-04-03 16:31) [121]

Alkid ©   (03.04.07 16:16) [116]

Ну раз визуально одна структура структурнее другой :)


 
Игорь Шевченко ©   (2007-04-03 16:33) [122]


> Объяснялось же, основные требование - независимость, многоуровневость,
>  вложенность, приоритеты уровней


Какое отношение эти требования имеют к исходному коду ?


 
Alkid ©   (2007-04-03 16:33) [123]


> Объяснялось же, основные требование - независимость, многоуровневость,
>  вложенность, приоритеты уровней. XML удовлетворяет всем
> требованиям.


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

P.S. 2ALL: Господа, это я один такой?


 
Alkid ©   (2007-04-03 16:34) [124]


> Ну раз визуально одна структура структурнее другой :)

Вспоминается сразу Жванецкий.
"Ну у нас с собой было...
Выпили, посмотрели.
- Нормально, Григорий?
- А-а-атлично, Константин!"
:)


 
xayam ©   (2007-04-03 16:36) [125]

ладно это все философия, а философию не любят, так что пошел кодить, удачи всем.


 
pasha_golub ©   (2007-04-03 16:37) [126]


>
> xayam ©   (03.04.07 16:25) [120]

Алексей, я думаю, что ваша работа будет иметь ценность только как познавательная. Вы женаты, кстати? :)


 
Alkid ©   (2007-04-03 16:37) [127]


> ладно это все философия, а философию не любят, так что пошел
> кодить, удачи всем.

Да нет, я философию в приминении к софтостроению очень уважаю.
Просто видать наши подходы к философии несовместимы :)


 
Ega23 ©   (2007-04-03 16:39) [128]


> xayam ©


Тебя надо с Coddie познакомит. Есть у нас тут такой интересный товарисч.


 
Alkid ©   (2007-04-03 16:42) [129]


> лексей, я думаю, что ваша работа будет иметь ценность только
> как познавательная. Вы женаты, кстати? :)

Я чуть под стул не упал. Меня так же зовут :)


>
> Тебя надо с Coddie познакомит. Есть у нас тут такой интересный
> товарисч.

Да, это мысль :)


 
pasha_golub ©   (2007-04-03 17:27) [130]


> Alkid ©   (03.04.07 16:42) [129]
>
>


> Я чуть под стул не упал. Меня так же зовут :)

Лексей... Редкое имя... :D


 
pasha_golub ©   (2007-04-03 18:51) [131]

Напишу сюда свою идею о программе. Надеюсь не обижу никого. Просто очень схожые принципы заложены. Хочется честного ответа. Мол, ПаГо не бери в голову. Узкоспециализированная хрень да и только. Или, наоборот, что есть зерно некое и стоит заняться. Ну и, если есть зерно, то в каком формате стоит сделать: free or share?

Итак. На вход дается скрипт SQL. Программа разбирает его по стейтментам и представляет в виде грида. Но есть и закладка в режим обыкновенного редактора.

В чем суть. Каждый стейтмент это узел в дереве разбора.

Какая доступна функциональность с налету:

1. Изменение номера порядкового узла. То есть можем менять руками следование стейтментов. Кстати, как нормально будет statement по-русски?

2. Поиск и сортировка:
а) по виду стейтмента, например SELECT, CREATE
б) по типу стейтмента, например DDL, DML, специфические сервачные
в) по мишеням в запросах (targets), например SELECT col1, col2 FROM table1 - table1 назовем мишенью
г) сортировка по порядку создания, чтобы, например, сначала создавалась роль, а уж затем таблица, принадлежащая ей
д) <ваше предложение>

3. Замена. Например, мне часто юзери шлют дампы своих баз, в которых объекты принадлежат ролям, которых у меня нет. И я их ручками ищу и убиваю.

4. Валидация на версионность или соответствие стандарту.

5. Трансформация узлов. Например:

CREATE TABLE t1 (
 a integer PRIMARY KEY,
 b integer,
 c integer,
 FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)
);


Сделать как

CREATE TABLE t1 (
 a integer PRIMARY KEY,
 b integer,
 c integer
);

ALTER TABLE t1 ADD CONSTRAINT fk_name
 FOREIGN KEY (b, c) REFERENCES other_table (c1, c2)


Полезно при кольцевых ссылках, или ссылках таблицы самой на себя.

6. Вставка узлов с шаблоном, подсветка синтаксиса и code insight ;)

7. Контекстная помощь по каждому узлу (help). Файл chm (hlp) открывается на странице, на которой описан данный стейтмент

Как фичи, но не обязательные:

8. Реверс базы

9. Выполнение скриптов

10. Merge & compare скриптов (слияние и сравнение). Будет намного интеллектуальней, чем просто текстовый, ибо сможет учитывать логику, а не аспекты текста: отступы, порядок следования, абзацы, форматирование, комментарии и пр.

11. <Ваши предложения>


 
pasha_golub ©   (2007-04-03 18:55) [132]


> схожые принципы

Позор мне... СхожИе... Ужос, что олбанцкий изык делает с лютьми. :(


 
xayam ©   (2007-04-03 19:03) [133]


> pasha_golub ©   (03.04.07 18:51) [131]
> Напишу сюда свою идею о программе. Надеюсь не обижу никого.
>  Просто очень схожые принципы заложены.

схожие принципы должны одинаково оформляться, это я к тому что sql надо формат grm переводить.

> Ну и, если есть зерно, то в каком формате стоит сделать:
>  free or share?

opensource желательно))


> pasha_golub ©   (03.04.07 16:37) [126]
> Вы женаты, кстати? :)

да вот никак собраться не могу


> Игорь Шевченко ©   (03.04.07 16:33) [122]
> > Объяснялось же, основные требование - независимость, многоуровневость,
> >  вложенность, приоритеты уровней
> Какое отношение эти требования имеют к исходному коду ?

это имеет отношение ко всему.


 
pasha_golub ©   (2007-04-03 19:09) [134]


> xayam ©   (03.04.07 19:03) [133]


> надо формат grm переводить

К сожалению, не имею понятия что сие. Плюс тут заковыка програмы не в трансформации одного в другое. А сделать некий комбайн, который позволит более быстро работать со скриптом, учитывая его струкрурированность. Во, блин, загнул. :)


> да вот никак собраться не могу
>
>

Надо бы. Дело хорошее. Каждый мужчина должен быть женат. :) Про работу и детей, это опционально. :) Это забота жен.


 
xayam ©   (2007-04-03 19:46) [135]


> pasha_golub ©   (03.04.07 19:09) [134]
>  учитывая его струкрурированность

вот grm как я понял и описывает эту струкрурированность.

> К сожалению, не имею понятия что сие.

ссылки выше были же
http://www.devincook.com/goldparser/builder/index.htm
Grammar Edit можно использовать как редактор grm, а GOLD Parser Builder (или версию для командной строки) как конвертер в CTG, который GoldPraser уже "понимает".


 
xayam ©   (2007-04-03 19:47) [136]

GoldPraser:= GoldParser - это в исходниках на делфях есть


 
Игорь Шевченко ©   (2007-04-03 21:59) [137]


> Кстати, как нормально будет statement по-русски?


оператор

по сабжу - пункт 5 может быть интересен, остальным, честно говоря, применения не вижу. Но может, я чего не разглядел :)


 
Суслик ©   (2007-04-04 10:21) [138]


> [135] xayam ©   (03.04.07 19:46)

интересная штука этот gold parser
может свой интерпретатор по науке перепишу


 
euru ©   (2007-04-04 10:32) [139]


> Игорь Шевченко ©   (03.04.07 21:59) [137]
> > Кстати, как нормально будет statement по-русски?
> оператор
Понятие "оператор" сейчас уже стало узкоспециализированным. Я в таких случаях использую понятие "инструкция".


 
Ega23 ©   (2007-04-04 10:36) [140]


> pasha_golub ©   (03.04.07 18:51) [131]


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

По-поводу пункта 4 - это-ж сколько тебе диалектов держать придёцца? Select T=Column1 from ... для MSSQL то же самое, что и Select Column1 T from или Select Column1 as T from

По-поводу пункта 5: А зачем? Хотя - снято. Действительно, может быть полезно. Правда ссылки я выставляю всегд через ALTER, но это уже к делу не относится.

Вывод в целом: если бы такой инструмент существовал, то может быть я его попробовал бы. И даже может быть использовал (если бы он понравился сильно). Но какой-то особой нужды - не испытываю.


 
Игорь Шевченко ©   (2007-04-04 11:01) [141]

euru ©   (04.04.07 10:32) [139]


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


Когда человеку говоришь "оператор SQL", он понимает, когда говоришь "инструкция SQL", впадает в ступор.


 
infom ©   (2007-04-04 12:21) [142]


> [136] xayam ©   (03.04.07 19:47)

По сабжу. Не хочется обидеть, но как-то однобоко вы ведете разговор, вам задают конкретный вопрос приводят конкретные факты, а вы отвечаете лишь, что "Я это не знаю, поэтому то что я делаю будет полезно" и "Извините нам в другую сторону". Хотелось бы сказать что вам желательно провести дискуссию по этой не теме не используя форум, а в реальности за кафедрой перед аудиторие, скажем, вы просто не удержите свою теорию, нет в ней стройности, анализа, актуальности и т.д. и т.п. - отсюда вывод, может вы что-то и сделаете, но это будет пустой тратой времени и нужной отдачи от работы вы никак не получите... советую двинуться в сторону изучения .NET . Там ваш способ изучения Всего точно увидит что Microsoft - это не просто бренд, а реально мощная софтверная корпорация и делает она очень хорошие вещи (последнюю фразу мастерам просьба не комментировать).

> [131] pasha_golub ©   (03.04.07 18:51)

Хочется сказать что задача достаточно сложна....
Каждый программист видит скрипт который он написал по своему, в зависимости от привычек мозг структурирует его так или иначе, привести это к одному универсальному виду, а тем более отобразить графически или в виде таблицы для всех одинаково задача архисложная, отсюда вывод : одним программистам ваша программа может сильно понравиться, другим сильно непонравиться и более того они вообще не поймут как с ней работать...
Если все таки вам удасться это сделать буду аплодировать вам стоя, и конечно использовать сие творение...
Конкретно по пунктам:
1. +
2. и 3. - стандартно в принципе для любого редактора, будет полезно если вы привнесете что-то новое
4. каким конкретно стандартам?
5. +
6. +
7. +
8. помоему это обязательно для такой системы, тем более особой сложности не представляет
9. спорно, придется делать что-то реально универсальное
10. +
11. Предлагать сложно, так как не понятно как это будет выглядеть предлагаю привести хотя-бы нарисованную картинку как предпологается отображать скрипт.


 
pasha_golub ©   (2007-04-04 12:44) [143]


>
> Ega23 ©   (04.04.07 10:36) [140]


> а для сложных - как долго будет работать?


Пример сложного скрипта на PostgreSQL:

CREATE RULE users_rl AS ON DELETE TO schema_users.users WHERE (old.userid = 5) DO INSTEAD NOTHING;

CREATE OR REPLACE VIEW information_schema.columns AS
SELECT current_database()::information_schema.sql_identifier AS table_catalog, nc.nspname::information_schema.sql_identifier AS table_schema, c.relname::information_schema.sql_identifier AS table_name, a.attname::information_schema.sql_identifier AS column_name, a.attnum::information_schema.cardinal_number AS ordinal_position,
       CASE
           WHEN u.usename = "current_user"() THEN ad.adsrc
           ELSE NULL::text
       END::information_schema.character_data AS column_default,
       CASE
           WHEN a.attnotnull OR t.typtype = "d"::"char" AND t.typnotnull THEN "NO"::text
           ELSE "YES"::text
       END::information_schema.character_data AS is_nullable,
       CASE
           WHEN t.typtype = "d"::"char" THEN
           CASE
               WHEN bt.typelem <> 0::oid AND bt.typlen = -1 THEN "ARRAY"::text
               WHEN nbt.nspname = "pg_catalog"::name THEN format_type(t.typbasetype, NULL::integer)
               ELSE "USER-DEFINED"::text
           END
           ELSE
           CASE
               WHEN t.typelem <> 0::oid AND t.typlen = -1 THEN "ARRAY"::text
               WHEN nt.nspname = "pg_catalog"::name THEN format_type(a.atttypid, NULL::integer)
               ELSE "USER-DEFINED"::text
           END
       END::information_schema.character_data AS data_type, information_schema._pg_char_max_length(information_schema._pg_truetypid(a.*, t.*), information_schema._pg_truetypmod(a.*, t.*))::information_schema.cardinal_number AS
character_maximum_length, information_schema._pg_char_octet_length(information_schema._pg_truetypid(a.*, t.*), information_schema._pg_truetypmod(a.*, t.*))::information_schema.cardinal_number AS character_octet_length,
information_schema._pg_numeric_precision(information_schema._pg_truetypid(a.*, t.*), information_schema._pg_truetypmod(a.*, t.*))::information_schema.cardinal_number AS numeric_precision, information_schema._pg_numeric_precision_radix(information_schema._pg_truetypid( a.*, t.*),
information_schema._pg_truetypmod(a.*, t.*))::information_schema.cardinal_number AS numeric_precision_radix, information_schema._pg_numeric_scale(information_schema._pg_truetypid(a.*, t.*), information_schema._pg_truetypmod(a.*, t.*))::information_schema.cardinal_number AS numeric_scale,
information_schema._pg_datetime_precision(information_schema._pg_truetypid(a.*, t.*), information_schema._pg_truetypmod(a.*, t.*))::information_schema.cardinal_number AS datetime_precision, NULL::information_schema.character_data::information_schema.character_data AS interval_type,
NULL::information_schema.character_data::information_schema.character_data AS interval_precision, NULL::information_schema.sql_identifier::information_schema.sql_identifier AS character_set_catalog, NULL::information_schema.sql_identifier::information_schema.sql_identifier AS character_set_schema,
NULL::information_schema.sql_identifier::information_schema.sql_identifier AS character_set_name, NULL::information_schema.sql_identifier::information_schema.sql_identifier AS collation_catalog,
NULL::information_schema.sql_identifier::information_schema.sql_identifier AS collation_schema, NULL::information_schema.sql_identifier::information_schema.sql_identifier AS collation_name,
       CASE
           WHEN t.typtype = "d"::"char" THEN current_database()
           ELSE NULL::name
       END::information_schema.sql_identifier AS domain_catalog,
       CASE
           WHEN t.typtype = "d"::"char" THEN nt.nspname
           ELSE NULL::name
       END::information_schema.sql_identifier AS domain_schema,
       CASE
           WHEN t.typtype = "d"::"char" THEN t.typname
           ELSE NULL::name
       END::information_schema.sql_identifier AS domain_name, current_database()::information_schema.sql_identifier AS udt_catalog,
COALESCE(nbt.nspname, nt.nspname)::information_schema.sql_identifier AS udt_schema, COALESCE(bt.typname, t.typname)::information_schema.sql_identifier AS udt_name,
NULL::information_schema.sql_identifier::information_schema.sql_identifier AS scope_catalog, NULL::information_schema.sql_identifier::information_schema.sql_identifier AS scope_schema,
NULL::information_schema.sql_identifier::information_schema.sql_identifier AS scope_name, NULL::information_schema.cardinal_number::information_schema.cardinal_number AS maximum_cardinality,
a.attnum::information_schema.sql_identifier AS dtd_identifier, "NO"::information_schema.character_data::information_schema.character_data AS is_self_referencing
  FROM pg_attribute a
  LEFT JOIN pg_attrdef ad ON a.attrelid = ad.adrelid AND a.attnum = ad.adnum, pg_class c, pg_namespace nc, pg_user u, pg_type t
  JOIN pg_namespace nt ON t.typnamespace = nt.oid
  LEFT JOIN (pg_type bt
  JOIN pg_namespace nbt ON bt.typnamespace = nbt.oid) ON t.typtype = "d"::"char" AND t.typbasetype = bt.oid
 WHERE a.attrelid = c.oid AND a.atttypid = t.oid AND u.usesysid = c.relowner AND nc.oid = c.relnamespace AND a.attnum > 0 AND NOT a.attisdropped AND
(c.relkind = "r"::"char" OR c.relkind = "v"::"char") AND (u.usename = "current_user"() OR has_table_privilege(c.oid, "SELECT"::text) OR has_table_privilege(c.oid, "INSERT"::text)
OR has_table_privilege(c.oid, "UPDATE"::text)
OR has_table_privilege(c.oid, "REFERENCES"::text));

ALTER TABLE information_schema.columns OWNER TO postgres;
GRANT ALL ON TABLE information_schema.columns TO postgres;
GRANT SELECT ON TABLE information_schema.columns TO public;

CREATE OR REPLACE VIEW pg_indexes AS
SELECT n.nspname AS schemaname, c.relname AS tablename, i.relname AS indexname, t.spcname AS "tablespace", pg_get_indexdef(i.oid) AS indexdef
  FROM pg_index x
  JOIN pg_class c ON c.oid = x.indrelid
  JOIN pg_class i ON i.oid = x.indexrelid
  LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
  LEFT JOIN pg_tablespace t ON t.oid = i.reltablespace
 WHERE c.relkind = "r"::"char" AND i.relkind = "i"::"char";

ALTER TABLE pg_indexes OWNER TO postgres;
GRANT SELECT ON TABLE pg_indexes TO public;


Время разбора с отрисовкой: 0,22 секунды

Время самого разбора наверное в половину меньше.


 
pasha_golub ©   (2007-04-04 13:26) [144]


> Хочется сказать что задача достаточно сложна....

Да, конечно. Когда нет парсера она архисложная. Но он у меня слава Аллаху имеется. И на него я положил год где-то... Не постоянно над ним трудился, но с "запоями".


> 2. и 3. - стандартно в принципе для любого редактора, будет
> полезно если вы привнесете что-то новое

Редактор не может искать определенные операторы. Живой пример. Я закомментирую половину скрипта. Обыкновенный редактор будет искать и в комментариях.


> 4. каким конкретно стандартам?

В основном имел ввиду версионность. Что определенный вид операторов был введен с такой-то версии. Соответственно имеем список версий с нововведениями и проверяем. При несоответствии можем либо трансформировать, либо закомментировать.


> 9. спорно, придется делать что-то реально универсальное

Согласен. Либо включать это в другой продукт.


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

Это не будет приводится к универсальному виду. Все останется без изменений. Абсолютно. Все отстпупы, все комментарии и прочее. Просто человек сможет работать со структурой. Как например Обозреватель кода в IDE Delphi. Он просто предоставляет древовидную структуру в которой показывает классы, процедуры, переменные и пр. Но на самом же деле код не поддается изменению.


 
infom ©   (2007-04-04 13:52) [145]

> [143] pasha_golub ©   (04.04.07 12:44)
> Время разбора с отрисовкой: 0,22 секунды
>
> Время самого разбора наверное в половину меньше.

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


 
pasha_golub ©   (2007-04-04 15:46) [146]


> infom ©   (04.04.07 13:52) [145]


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

Да ее и нету еще. Но скрин ща сооружу, как я его вижу :)


 
pasha_golub ©   (2007-04-04 16:01) [147]


> infom ©   (04.04.07 13:52) [145]

Вот, так сказать, рыба: http://www.microolap.com/temp/pg/PaGo.png

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


 
xayam ©   (2007-04-05 22:50) [148]


> infom ©   (04.04.07 12:21) [142]
> По сабжу. Не хочется обидеть, но как-то однобоко вы ведете
> разговор, вам задают конкретный вопрос приводят конкретные
> факты, а вы отвечаете лишь, что "Я это не знаю, поэтому
> то что я делаю будет полезно" и "Извините нам в другую сторону".

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

>  Хотелось бы сказать что вам желательно провести дискуссию
> по этой не теме не используя форум, а в реальности за кафедрой
> перед аудиторие, скажем, вы просто не удержите свою теорию,

Конкретно я - может быть и не удержу, не спорю. Но и такой цели нет.

>  нет в ней стройности, анализа, актуальности и т.д. и т.п.

потому как это пока только на словах)), а они "изменчивы и могут ничего не значить"


> - отсюда вывод, может вы что-то и сделаете, но это будет
> пустой тратой времени и нужной отдачи от работы вы никак
> не получите...

а мне нравится так тратить время. Вы против?


> советую двинуться в сторону изучения .NET
> . Там ваш способ изучения Всего точно увидит что Microsoft
> - это не просто бренд, а реально мощная софтверная корпорация
> и делает она очень хорошие вещи

а я и не спорю, когда говорю "известная фирма", и не сомневаюсь в качестве ПО этой фирмы. Но вопрос и проблема совершенно в другом. Microsoft это фирма "в себе", это монополист. На первое место она ставит свои интересы, а не общие, хотя и "преподносит" это по-разному... Не скрываю, что глубоко и полностью поддерживаю открытое ПО, открытые/независимые стандарты, технологии и т.д. А их немало. Вопрос также и в методологии их использования.


 
xayam ©   (2007-04-05 23:25) [149]

Теперь исходники GrammarEdit"а тоже есть ))

http://xayam.by.ru/Download/GrammarEdit_sources.rar

Спасибо Dmitry Lamdan.


 
xayam ©   (2007-04-05 23:26) [150]

P.S "Большая просьба, если будете распространять свое развитие программы - не забудьте в readme указать изначального автора"


 
infom ©   (2007-04-06 10:27) [151]

> [148] xayam ©   (05.04.07 22:50)

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

С уважением.


 
xayam ©   (2007-04-06 12:21) [152]

А про эту болтавню что скажите?

http://logica.1111mb.com/

Это черновой вариант статьи, написанной в основном по этой ветке. Кому интересно - высказывайте свое мнение.


 
Игорь Шевченко ©   (2007-04-06 12:28) [153]


>
> http://logica.1111mb.com/


"Когда посредственность тиха,
В том нет особого греха.
Но как она противна,
Когда инициативна"
(с)


 
euru ©   (2007-04-06 12:32) [154]


> xayam ©   (06.04.07 12:21) [152]
А куда в этой схеме пристраивать, например, Prolog?


 
Джо ©   (2007-04-06 12:35) [155]

> [152] xayam ©   (06.04.07 12:21)
> А про эту болтавню что скажите?


Это синдром Николая Васильевича Гоголя периода «Переписки с друзьями». Мдя-с...


 
xayam ©   (2007-04-06 12:46) [156]


> euru ©   (06.04.07 12:32) [154]
> > xayam ©   (06.04.07 12:21) [152]
> А куда в этой схеме пристраивать, например, Prolog?

черт и пролога не знаю, чувствую скоро отправят меня на свалку за ненадобностью. А этот пролог у него как с грамматикой? Она есть?


 
Думкин ©   (2007-04-06 12:47) [157]

Вы бы почитали чего, барин. :(

Сколько простора открывается перед тем кто ничего не читал кроме Мурзилки. Любая травинка - открытие.


 
infom ©   (2007-04-06 13:05) [158]

> http://logica.1111mb.com/

Да... извините за выражение, но такого слепого бреда я ещё не видел.... читал и смеялся, чего только стоит этот абзац
  Некоторые сейчас скажут:"Да ладно, гонишь. Есть платформо-независимый Net, Java, Xml... Что же ты еще хочешь?". Не дофига ли их, этих "платформо-независимых"? Надо бы отфильтровать. Как это говорят - who is who? И тут возникает еще одна проблема. У каждого свой фильтр, своя голова, свои мысли, свои слова и т.д. Большинство идет за модой, сейчас например очень часто в книжных магазинах спрашивают Net, C#. Мода! Java тоже не отстает. Мода! И т.д. А Вы знаете, что мода меняется?! Не подумайте, что я против этих языков, и вообще какого-либо. Каждый язык имеет право на существование. Но я против бардака, который наблюдается, хоть Microsoft напишет 100 версий своего фреймворка, хоть 200, принципиально ничего не поменяет. Нужен открытый независимый (от Microsoft в том числе) стандарт исходных текстов. XML вполне подходит для создания такого языка.
Ваши выводы:
Недофига ли этих платформо независимых, давайте сделаем ещё один....
Я ничего не имею против .NET но предлагаю создать свой, .NET это ведь Microsoft....  а про Java мы ообще забыли....

А теперь вопрос если абстрагироваться от всего того ... что есть в статье и вообразить (как бы это сложно не было) что господин все таки создасть свой открытый стандарт..... вопрос зачем ?? кому это надо и кто из здравомысляших поддастся непонятной идее opensourc"a....

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


 
xayam ©   (2007-04-06 13:19) [159]


> infom ©   (06.04.07 13:05) [158]
>  когда отсутствие знаний и опыта

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


 
Игорь Шевченко ©   (2007-04-06 13:24) [160]

xayam ©   (06.04.07 13:19) [159]

Можно я напишу свое видение проблемы ? Нафиг не надо создавать единый язык, соответственно, вся твоя затея идет дремучим лесом


 
xayam ©   (2007-04-06 13:33) [161]

т.е. типа и проблемы нет? Это Вы называете проф. подходом?


 
infom ©   (2007-04-06 14:50) [162]

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

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

Итак:
1. Моё видение проблемы - проблемы нет как таковой .... опишите мне поподробнее в чем собственно необходимость и актуальность, простые фразы вида "все как-то неупорядочено" не пройдут, нужны конкретные факты хотя бы на вашем личном опыте (я не прошу у вас источников и статей).
2. Вы бы для начала провели исследование... вы уверены что любой исходник одного языка можно перевести в любой другой язык ? Давайте для начала возьмите код любого pas файла в поставке к Делфи и переведите в код на другом языке, просто попробуйте...
3. Вы уверены что до вас это никто не делал ? Приведите мне конкретные недостатки хотя бы у .NET и Java, чем они вас не устроили ....

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

И ещё, я являюсь аспирантом и мне скоро предстоит защита своей диссертации, так вот хочу сказать вам, что для того чтобы понять стоящая работа или нет не надо каждому профессору слушающему меня знать предмет, достаточно привести свой доклад к следующему плану (я его чуть сократил дабы не вводить вас в заблуждение):
1. Актуальность проблемы.
2. Исследование существующих методов её решения, выявления противоречий.
3. Выработка своего решения.
4. Доказательство его правильности.
И любой человек по приведенному докладу сможет оценить мой вклад в данную область...

Предлагаю вам привести свою статью к этому виду и тогда ни у кого здесь не возникнет к вам вопросов....


 
xayam ©   (2007-04-06 15:10) [163]


> infom ©   (06.04.07 14:50) [162]
> 3. Вы уверены что до вас это никто не делал ?

"я знаю что ничего не знаю". Вот может быть действительно Вы мне подскажите кто такой xml-язык уже сделал? Delphi вроде пошел в этом направлении, когда сделал файлы .bdsgroup .bdsproj - xml-файлами. Но где схемы? Тоже самое нужно сделать и с .pas .dpr .dpk.


 
Johnmen ©   (2007-04-06 15:16) [164]


> infom ©   (06.04.07 14:50) [162]

Можно не напрягаться, ведь это же ксиам, известный своей фирменной фишкой - вбросить бред и начать его доказывать. При этом игнорируя высказывания и мнения других...
Так что не трать время понапрасну...:)


 
xayam ©   (2007-04-06 15:29) [165]


> Приведите
> мне конкретные недостатки хотя бы у .NET и Java, чем они
> вас не устроили ....

ну вот знаете, может мне просто лень учить одно и тоже только записанное в другом виде, может быть я как раз хочу наоборот - множественное представление исходного кода. Далеко ходить не будем, приведем пример со смежной области. Тот же интернет написали программисты - Html, Css, XHtml, JavaScript... ну их там целая куча этих языков, Вы же знаете. И вот однажды просыпаюсь, начинаю изучать очередной язык, прихожу к выводу, что мне это нахрен не нужно. Даже больше прихожу к выводу что этот самый интернет обогнал программистов. Как это может быть? Попробую пояснить. Представьте Delphi - это браузер, .pas - это то что мы видим. В интернете почти тоже самое - пользователи тоже видят только отформатированный текст, а не само форматирование. Но у них есть то, чего у программистов нет - это скажем XHTML (или любой подобный). Соответственно можно написать целую кучу "delphi-браузеров", представляющих информацию в любом виде... и какой-то конкретный язык программирования будет всего лишь одним из таких представлений.


 
Игорь Шевченко ©   (2007-04-06 16:51) [166]

xayam ©   (06.04.07 15:29) [165]

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


 
xayam ©   (2007-04-06 17:09) [167]

Интересно дядя Юра к нам подоспеет, хотелось услышать мнение этого человека?


 
xayam ©   (2007-04-06 17:56) [168]


> infom ©   (06.04.07 14:50) [162]
> 1. Моё видение проблемы - проблемы нет как таковой

нет проблемы платформо-независимости исходного кода? Обычно есть когда человек хочет написать программу, которая будет работать на всех существующих платформах сейчас и на тех которые еще появятся в будущем. Такой проблемы нет? Есть и она не решена. Решение заключается в автоматизации всего процесса, создании структуры, связей между  абстрактными уровнями, эти связи как раз и были показаны. Такая структура независима от понятного желания человека писать программу на любимом языке, она независима от всего. Но на схемах показана только верхушка айсберга, а внутри каждого языка - туда пойдет только тот кому этот язык нравится - нужно опять же применять тот же самый принцип - один корень и вложенные по приоритетам уровни. Все достаточно просто.


 
Игорь Шевченко ©   (2007-04-06 18:05) [169]


> Обычно есть когда человек хочет написать программу, которая
> будет работать на всех существующих платформах сейчас и
> на тех которые еще появятся в будущем. Такой проблемы нет?
>  Есть и она не решена.


Он пишет на Java.


 
xayam ©   (2007-04-06 18:08) [170]


> Игорь Шевченко ©   (06.04.07 18:05) [169]
> Он пишет на Java.

отлично, может его попросить javy в xml перевести? ))

кто займется C#? ))


 
Игорь Шевченко ©   (2007-04-06 18:10) [171]

xayam ©   (06.04.07 18:08) [170]


> отлично, может его попросить javy в xml перевести? ))


Зачем ?


> кто займется C#? ))


А зачем им заниматься ?

Не надо умножать сущности сверх необходимости, об этом давным-давно Оккам предупреждал.


 
xayam ©   (2007-04-06 18:12) [172]


> Игорь Шевченко ©   (06.04.07 18:10) [171]
> Не надо умножать сущности сверх необходимости, об этом давным-
> давно Оккам предупреждал.

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


 
infom ©   (2007-04-06 18:19) [173]

> "я знаю что ничего не знаю". Вот может быть действительно
> Вы мне подскажите кто такой xml-язык уже сделал? Delphi
> вроде пошел в этом направлении, когда сделал файлы .bdsgroup
> .bdsproj - xml-файлами. Но где схемы? Тоже самое нужно сделать
> и с .pas .dpr .dpk.

Borland и близко не идет в этом направлении, факт хранения файлов проекта в xml не тянет за собой желание создать то о чем Вы говорите.

>
> > Обычно есть когда человек хочет написать программу, которая
>
> > будет работать на всех существующих платформах сейчас
> и
> > на тех которые еще появятся в будущем. Такой проблемы
> нет?
> >  Есть и она не решена.
>
>
> Он пишет на Java.


В точку

И ещё одна мысль, зачем пользователю после того как он написал программу в том универсальном языке о котором вы говорите транслировать в другие языки ? Ведь если программа написана на этом языке её можно прекрасно откомпилировать в машинные коды и получить программу миную ненужное преобразование в другие языки. Отсюда вопрос зачем трансляция между языками ?


 
xayam ©   (2007-04-06 18:22) [174]

Игорь, я все хотел спросить у тебя есть связи с CodeGear? Или знаешь таких людей?


 
xayam ©   (2007-04-06 18:27) [175]


> infom ©   (06.04.07 18:19) [173]
> Отсюда вопрос зачем трансляция между языками ?

уже отвечал. Кроме тебя и меня есть другие люди, кроме этого форума есть другие форумы, кроме нашего города есть другие и т.д. И каждый использует язык, который ему нравится. Вот для этого и нужно транслировать. Тогда код, написанный любым человеком на одном конкретном языке, будет доступен каждому, которые в общем случае пишут на разный языках программирования. Примерно как с инностранными языки кстати. Вы видите ассоциации?


 
xayam ©   (2007-04-06 18:32) [176]

языки:= языками


 
Virgo_Style ©   (2007-04-06 18:48) [177]

xayam ©   (06.04.07 18:27) [175]
Вы видите ассоциации?


Еще какие.


 
infom ©   (2007-04-06 18:54) [178]

> уже отвечал. Кроме тебя и меня есть другие люди, кроме этого
> форума есть другие форумы, кроме нашего города есть другие
> и т.д. И каждый использует язык, который ему нравится. Вот
> для этого и нужно транслировать. Тогда код, написанный любым
> человеком на одном конкретном языке, будет доступен каждому,
> которые в общем случае пишут на разный языках программирования.
> Примерно как с инностранными языки кстати. Вы видите ассоциации?

Велосипед уже изобретен... dll ?


 
xayam ©   (2007-04-06 18:59) [179]


> infom ©   (06.04.07 18:54) [178]
> Велосипед уже изобретен... dll ?

это платформо-зависимая часть (читай конец статьи). На FreeBSD например не встречал dll. А ты? Могу в принципе расписать подробнее и актуальность... время только нужно, все шероховатости стереть))


 
infom ©   (2007-04-06 19:02) [180]

> это платформо-зависимая часть (читай конец статьи). На FreeBSD
> например не встречал dll. А ты? Могу в принципе расписать
> подробнее и актуальность... время только нужно, все шероховатости
> стереть))

А язык pascal или C++ платформо зависим ?


 
xayam ©   (2007-04-06 19:16) [181]


> infom ©   (06.04.07 19:02) [180]
> А язык pascal или C++ платформо зависим ?

да как Вы не поймете, дело не в языках, на которых люди пишут. А в связях, которые эти языки образуют. Т.е. конкретном исходном коде. Приведу несколько примеров, хотя их целая гора, поэтому и задача очень сложная, связей то море. Скажем программист пишет программу, неважно какую и на определенном этапе у него возникают в принципе стандарные проблемы:
1) сохранение настроек.
Способ решения.
а) Платформо-зависимый. На винде. Сохранить в реестр.
б) Платформо-независимый. На винде. Создать папку/файл в директории создаваемой программы.
2) связь с бд
а) Платформо-зависимый. На винде. Через BDE, любые API и т.д.
б) Платформо-независимый. Использовать один из платформо-независимых языков для обмена с бд, например xml.

и т.д.


 
xayam ©   (2007-04-06 19:37) [182]

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


 
xayam ©   (2007-04-07 19:38) [183]

что-то все молчат.

неужели не интересно стало. Как серьезная проблема, все сразу лесом лесом))


 
infom ©   (2007-04-09 16:04) [184]

> да как Вы не поймете

Все я понял, да вот вы меня никак не поймете.
> [183] xayam ©   (07.04.07 19:38)
> неужели не интересно стало. Как серьезная проблема, все
> сразу лесом лесом))

Ещё раз повторю, у Вас ничего не получиться, последний раз предлагаю: проделайте то что я предложил в [162] по пунктам... тогда может разговор продолжится.


 
Alkid ©   (2007-04-09 16:09) [185]


> 1) сохранение настроек.
> Способ решения.
> а) Платформо-зависимый. На винде. Сохранить в реестр.
> б) Платформо-независимый. На винде. Создать папку/файл в
> директории создаваемой программы.

Ну-ну. А если на платформе нет файловой системе, то какой же платформонезависимой будет сохранение в файлах?


> 2) связь с бд
> а) Платформо-зависимый. На винде. Через BDE, любые API и
> т.д.
> б) Платформо-независимый. Использовать один из платформо-
> независимых языков для обмена с бд, например xml.

А кто сказал, что API - это платформозависимая вещь по определению. Вот есть JDBC. Это API. Платформонезависимая, как и вся джава.


 
Игорь Шевченко ©   (2007-04-09 16:10) [186]

xayam ©   (06.04.07 18:22) [174]


> Игорь, я все хотел спросить у тебя есть связи с CodeGear?
>  Или знаешь таких людей?


И у меня есть, и людей знаю.


> На FreeBSD например не встречал dll.


Может они там по-другому называются ? :)


 
Игорь Шевченко ©   (2007-04-09 16:12) [187]

xayam ©   (06.04.07 19:16) [181]


> у него возникают в принципе стандарные проблемы:
> 1) сохранение настроек.
> Способ решения.
> а) Платформо-зависимый. На винде. Сохранить в реестр.
> б) Платформо-независимый. На винде. Создать папку/файл в
> директории создаваемой программы.
> 2) связь с бд
> а) Платформо-зависимый. На винде. Через BDE, любые API и
> т.д.
> б) Платформо-независимый. Использовать один из платформо-
> независимых языков для обмена с бд, например xml.


Эрика Рэймонда "Исскуство программирования для Unix" читать.

Наизусть!

Он, в частности, неоднократно упоминает один простой принцип -
Keep it simple, stupid


 
Alkid ©   (2007-04-09 16:43) [188]


> Он, в частности, неоднократно упоминает один простой принцип
> -
> Keep it simple, stupid
>

Наваял тут миникреатифчик:
http://0x7be.livejournal.com/23331.html

Так вот, господин xayam - это типичный представитель этапа N4.


 
xayam ©   (2007-04-09 22:29) [189]


> Alkid ©   (09.04.07 16:43) [188]

"...бредит архитектурой..." )) спасибо, для меня это комплимент))


> Игорь Шевченко ©   (09.04.07 16:12) [187]
> Эрика Рэймонда "Исскуство программирования для Unix" читать.

выделю времечко конечно, FreeBSD forever))


> Игорь Шевченко ©   (09.04.07 16:10) [186]
> xayam ©   (06.04.07 18:22) [174]
> > На FreeBSD например не встречал dll.
> Может они там по-другому называются ? :)

да точно so называется или как там? Интересно у них структура одинаковая?

> infom ©   (09.04.07 16:04) [184]
> Ещё раз повторю, у Вас ничего не получиться

Вы даже не представляете сколько раз за день я это слышу)). Остальное в процессе.


 
xayam ©   (2007-04-09 22:33) [190]


> Игорь Шевченко ©   (09.04.07 16:10) [186]
> И у меня есть, и людей знаю.

Есть идея оформить мои мысли в виде небольшого доклада со схемами для высшего руководства. Только время нужно. Вы сможете донести это до адресата?


 
xayam ©   (2007-04-10 07:29) [191]


> Alkid ©   (09.04.07 16:09) [185]
> Ну-ну. А если на платформе нет файловой системе,

где ты такие видел?


 
Alkid ©   (2007-04-10 08:41) [192]


> где ты такие видел?

Навскидку - PalmOS


> "...бредит архитектурой..." )) спасибо, для меня это комплимент))

Вырвано из контекста :)


 
xayam ©   (2007-04-10 09:00) [193]


> Alkid ©   (10.04.07 08:41) [192]
> > где ты такие видел?
> Навскидку - PalmOS

ну а этот OS, он что с воздуха загружается?

> Вырвано из контекста :)

остальное не имеет большого значения, если только посмеятся, тогда прикольно))


 
Alkid ©   (2007-04-10 09:04) [194]


> ну а этот OS, он что с воздуха загружается?

Нет, не из воздуха. PalmOS хранит свои данные в наборе баз данных, который отличается СТРУКТУРОЙ от файловой системы.


> остальное не имеет большого значения, если только посмеятся,
>  тогда прикольно))

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


 
xayam ©   (2007-04-10 09:06) [195]


> Alkid ©   (10.04.07 09:04) [194]
> Нет, не из воздуха. PalmOS хранит свои данные в наборе баз
> данных, который отличается СТРУКТУРОЙ от файловой системы.

уже лучше. Стало быть файловая система уже есть?

> Однако в каждой шутке есть доля шутки.

вот как раз эту долю я и написал.


 
Alkid ©   (2007-04-10 09:12) [196]


> уже лучше. Стало быть файловая система уже есть?

Ты разницу между файловой системой и базой данных понимаешь?


 
xayam ©   (2007-04-10 09:13) [197]


> Alkid ©   (10.04.07 09:12) [196]
> > уже лучше. Стало быть файловая система уже есть?
> Ты разницу между файловой системой и базой данных понимаешь?

а ты между "хранит" и "файловая система" ассоциации видишь?


 
Alkid ©   (2007-04-10 09:16) [198]


> а ты между "хранит" и "файловая система" ассоциации видишь?

Да. Файловая система хранит инофрмацию, организуя её в виде набора бинарных блоков и не специализируя их структуру. Файлы могут быть организованы в иерархическое дерево каталогов.

БД хранит данные как набор таблиц с установленной структурой.

Общее между БД и ФС - они обе предназначены для хранения данных.

Различия - в способе организации данных.

Так вот, файловой системы в PalmOS нет, хотя её можно туда установить - есть сторонние реализации. Естественно, что ФС эмулируется "поверх" механизма БД, предоставляемого самой системой.


 
xayam ©   (2007-04-10 09:19) [199]

молодец, вот сам и ответил. Осталось только этот ответ в своих словах))

> Общее между БД и ФС - они обе предназначены для хранения
> данных.

+

> Различия - в способе организации данных.

нет смысла искать различия, есть смысм искать обобщения т.е. то, что между ними общее. А общее это как раз "хранят"...


 
xayam ©   (2007-04-10 09:23) [200]


> Осталось только этот ответ в своих словах))

Осталось только этот ответ в своих словах)) + найти


 
Alkid ©   (2007-04-10 09:40) [201]


> нет смысла искать различия, есть смысм искать обобщения
> т.е. то, что между ними общее. А общее это как раз "хранят".
> ..

Очень веско, но не по делу :) С чего началось?  С того, что в PalmOS нет ФС.
Её там действительно нет и с этим фактом ничего не поделаешь путём нереименовывания вещей :)

Понимаешь, фишка вот в чём - ты просто обмолвился, что ФС - это платформонезависимый способ хранения данных. Я с этим не согласился - привёл факт, который рушит твою теорию. Вместо того, что бы бростаться в бой и доказывать мне, что на самом деле ФС там есть, ты бы просто обобщил бы своё утверждение. Т.е. отказался бы от ФС, как от модели платформонезависимого хранилища и создал бы абстрактную модель такого хранилища, отвязанную от конкретностей.

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

Сейчас это решается следующим образом: создаётся свой набор абстракций, который не привязан к платформам, разрабатывается API для работы с ними и потом это реализуется на разных платформах. Т.е. между системой и программой возникает дополнительный слой совместимости.

Примеров таких решений полно: POSIX API, C/C++ Standard library, Java. .NET, X protocol и т.п. Некоторые решения воплощены в виде библиотек, некоторые в виде целых виртуальных машин, некоторые в виде сервисов (например, POSIX в Windows).

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

Я правильно тебя понял?


 
xayam ©   (2007-04-10 09:51) [202]


> Alkid ©   (10.04.07 09:40) [201]
> Я правильно тебя понял?

ты ничего не понял

есть смысл внимательно прочитать http://logica.1111mb.com/ , добавил еще одну небольшую статью. И еще внимательнее перечитать.


 
Alkid ©   (2007-04-10 10:12) [203]


> есть смысл внимательно прочитать http://logica.1111mb.com/
> , добавил еще одну небольшую статью. И еще внимательнее
> перечитать.

Прочитал. Сказано красиво но слишком обще и неконкретно.
Ладно, попробуем от практики. Есть программа, написана на дельфи, которая создаёт поток выполнения и считаёт в нём, скажем, число Пи до х/з какого знака. Программа работает под Windows. Опиши подробно по шагам, как будет проходить процесс трансформации этой программы в программу на C, которая должна работать под ОС MS-DOS.


 
xayam ©   (2007-04-10 10:17) [204]

)) а винда скоро умрет. Ты не знал? http://www.freebsd.org/ forever. В принципе как раз поэтому есть смысл поскорей перенести исходный код Delphi на FreeBSD, точнее на FPC.


 
Alkid ©   (2007-04-10 10:20) [205]


> )) а винда скоро умрет. Ты не знал? http://www.freebsd.org/
> forever. В принципе как раз поэтому есть смысл поскорей
> перенести исходный код Delphi на FreeBSD, точнее на FPC.

Ты ушёл от темы.
Но если тебе так хочется - переносим многозадачную программу с FreeBsd на MS-DOS.


 
xayam ©   (2007-04-10 10:21) [206]


> Alkid ©   (10.04.07 10:20) [205]
> Но если тебе так хочется - переносим многозадачную программу
> с FreeBsd на MS-DOS.

зачем?


 
Alkid ©   (2007-04-10 10:28) [207]


> зачем?

Затем. Я написал программу для FreeBSD. А потом возникла необходимость портировать её под MS-DOS, что бы построить систему очень реального времени, которую не могут обеспечить многозадачные системы. Следуя из заявленных тобой целей, с твоим подходом это будет возможно. Я хочу на этом примере понять суть твоего подхода, поскольку все данные тобой материалы написаны в слишком общих словах.


 
xayam ©   (2007-04-10 10:30) [208]

а никаких MS тоже не будет, будет одна сплошная FreeBSD))


 
Alkid ©   (2007-04-10 10:31) [209]


> а никаких MS тоже не будет, будет одна сплошная FreeBSD))

Хорошо, тогда OpenDos. Обладает примерно теми же свойствами, что и MS-DOS.


 
Игорь Шевченко ©   (2007-04-10 10:34) [210]

xayam ©   (09.04.07 22:33) [190]


> Вы сможете донести это до адресата?


Смогу. Только высшее руководство читает на свем родном языке.


 
infom ©   (2007-04-10 10:36) [211]

> [209] Alkid ©   (10.04.07 10:31)

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


 
Alkid ©   (2007-04-10 10:39) [212]


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

Да, заметил. Вот, пытаюсь дожать :)


 
xayam ©   (2007-04-10 10:39) [213]


> Alkid ©   (10.04.07 10:31) [209]
> > а никаких MS тоже не будет, будет одна сплошная FreeBSD))
> Хорошо, тогда OpenDos. Обладает примерно теми же свойствами,
>  что и MS-DOS.

так объяснял сто раз уже. Дельфисты переводят свой язык в xml, сишники переводят свой, потом дружно вместе собираются и думают как это дело привести к общему...


 
Alkid ©   (2007-04-10 10:44) [214]


> так объяснял сто раз уже. Дельфисты переводят свой язык
> в xml, сишники переводят свой, потом дружно вместе собираются
> и думают как это дело привести к общему...

Хорошо, упрощаю задачу: программа под FreeBSD написана на C. Надо перенести её на OpenDOS, что бы тоже получилась программа на C.

Ты не понял сути задачи. Суть задачи - как перевести программу, написанную для многозадачной ОС и использующую такую вещь, как "поток выполненния" на платформу, где нет такого понятия, как поток выполнгения.


 
Игорь Шевченко ©   (2007-04-10 10:46) [215]

xayam ©   (10.04.07 09:19) [199]

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


 
xayam ©   (2007-04-10 10:47) [216]

очень сложно, но возможно.


 
infom ©   (2007-04-10 10:50) [217]

> Да, заметил. Вот, пытаюсь дожать :)

С удовольствием послужу арбитро. Итак господин xayam не ответил пока ни на один вопрос господина Alkid . Чувствую скоро развязку...


 
xayam ©   (2007-04-10 10:55) [218]


> infom ©   (10.04.07 10:50) [217]
> > Да, заметил. Вот, пытаюсь дожать :)
> С удовольствием послужу арбитро. Итак господин xayam не
> ответил пока ни на один вопрос господина Alkid . Чувствую
> скоро развязку...

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


 
Alkid ©   (2007-04-10 10:55) [219]


> очень сложно, но возможно.

Не спорю, возможно. Вопрос - "как? ". Эта задача может служить проверкой вашей концепции. Собственно таких "гадких" задачек надо набрать несколько десятков и пока вы не будете достаточно детально представлять, как они будут решаться в рамках вашей системы, садиться за реализацию не стоит.

Так вот, я хочу, что бы вы дали объяснение, как именно это будет происходить. По вашей реакции я прихожу к выводу, что вы вообще не думали об этой стороне дела, хотя это и есть САМАЯ СЛОЖНАЯ ПРОБЛЕМА в переносе программ с платформы на платформу. Трансформация из С++ в Pascal и обратно, пока они опираются на одну платформу - Win32 - это почти банальность.


 
Alkid ©   (2007-04-10 10:57) [220]


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

(бурные аплодисменты).
Считаю, что Спольки надо читать всем, кто разрабатывает ПО. И не только.


 
Alkid ©   (2007-04-10 11:01) [221]


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

То есть получается, что платформенная независимость - это не цель, а средство? А цель - это ИИ. Тогда зачем средство превращать в цель и пытаться изобретать велосипед? Возьмите уже отработанные способы обеспечения платформонезависимости. Я бы выбрал одно из трёх:
1. С++, STL, BOOST.
2. Java
3. .NET
И не парился бы. А то "весь пар уйдёт в свисток".


 
infom ©   (2007-04-10 11:14) [222]

> А цель - это ИИ.

Тоже с ужасом обнаружил что цель это ИИ... с таким подходом до непосредственно ИИ добраться не возможно, зачем ИИ платформонезависимость ? она не даст ощутимого эффекта для разработки ИИ !


 
Alkid ©   (2007-04-10 11:18) [223]


> Тоже с ужасом обнаружил что цель это ИИ... с таким подходом
> до непосредственно ИИ добраться не возможно, зачем ИИ платформонезависимость
> ? она не даст ощутимого эффекта для разработки ИИ !

Я тоже был когда-то "Орхитектором" и был одержим ИИ. Собственно, единственное, что я понял, по большому счёту, так это то, что в разработке ИИ кодирование - это самая меньшая из задач, так что париться с кроссплатформенностью тут вообще не стоит.


 
pasha_golub ©   (2007-04-10 11:22) [224]

Я вновь включусь, простите.

Изначально была идея разобрать код по уже имеющеейся грамматике. Тут я уже читаю, что "
> Дельфисты переводят свой язык в xml, сишники переводят свой,
>  потом дружно вместе собираются и думают как это дело привести
> к общему...
".

Они грамматику переводят в XML? Или как?


 
infom ©   (2007-04-10 11:26) [225]

> Они грамматику переводят в XML? Или как?

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


 
Alkid ©   (2007-04-10 11:26) [226]

Игорь Шевченко тут процитировал Джоэля Спольски. И очень правильно процитировал. Однако я думаю, что лучше бы, что бы участвующие (кто ещё не) ознакомились с полным текстом статьи, из которой была приведена цитата:

http://local.joelonsoftware.com/mediawiki/index.php/%D0%9D%D0%B5_%D0%B4%D0%B0%D0%B9%D1%82%D0%B5_%D0%90%D1%81%D1%82%D1%80%D0%BE%D0%BD%D0%B0%D0%B2%D1%82%D0%B0%D0%BC_%D0%90%D1%80%D1%85%D0%B8%D1%82%D0%B5%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B2%D0%B0%D1%81_%D0%B7%D0%B0%D0%BF%D1%83%D0%B3%D0%B0%D1%82%D1%8C


 
Игорь Шевченко ©   (2007-04-10 11:29) [227]

Alkid ©   (10.04.07 11:26) [226]

Спасибо. До полного текста я в поиске не добрался, просто некогда :)


 
xayam ©   (2007-04-10 11:29) [228]


> pasha_golub ©   (10.04.07 11:22) [224]
> Они грамматику переводят в XML? Или как?

грамматику переводят в xsd-схему. Но Вы поймите проблема не только в этом. Проблема в том что люди не могут договориться, у них нет общего языка, нет общих идей, фактически нет ничего общего, ничего их не объединяет. Назовите это как хотите - религией, философией - но эти идеи нужно использывовать и реализовывать на всех уровнях Земли, от презединтов стран до простых обычных людей. Вот Вы знаете почему сейчас очень часто поддерживают открытые проекты (в частности http://code.google.com/soc), ищут людей которые хотят учиться? Как раз поэтому.


 
pasha_golub ©   (2007-04-10 11:32) [229]

Еще вопрос. Автор, вы знаете, что можно построить в общем случае бесконечное число непротиворечивых грамматик для одного и того же языка? Отличаться они будут, да хотя бы, названием узлов. Плюс Вы рассматриваете построение парсера на основое LALR(1) алгоритма, именно такой алгоритм использовал Devin Cook в Gold Parser"е.

А есть еще не менее распространненный LL алгоритм. Ну, например Coco (http://www.tetzel.com/CocoR/).

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

Кстати, про алгоритмы разбора тут есть немного:
http://en.wikipedia.org/wiki/Category:Parsing_algorithms

И еще замечание. Обычно отделяют лексический разбор от синтаксического. В Gold Parser"е этого нет. Для простоты. Но я могу сходу привести пример который вы не сможете описать в терминах Gold Parser"a. И этот пример не такая уж диковинка.


 
Alkid ©   (2007-04-10 11:34) [230]


> грамматику переводят в xsd-схему. Но Вы поймите проблема
> не только в этом. Проблема в том что люди не могут договориться,
>  у них нет общего языка, нет общих идей, фактически нет
> ничего общего, ничего их не объединяет. Назовите это как
> хотите - религией, философией - но эти идеи нужно использывовать
> и реализовывать на всех уровнях Земли, от презединтов стран
> до простых обычных людей. Вот Вы знаете почему сейчас очень
> часто поддерживают открытые проекты (в частности http://code.
> google.com/soc), ищут людей которые хотят учиться? Как раз
> поэтому.

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


 
pasha_golub ©   (2007-04-10 11:35) [231]


> xayam ©   (10.04.07 11:29) [228]


> Проблема в том что люди не могут договориться, у них нет
> общего языка, нет общих идей, фактически нет ничего общего,
>  ничего их не объединяет.

Это реальность. Но предложенная Вами абстракция никак не решает эту проблему. Потому что

а) узкоспециализирована и надумана
б) не объясняет причины разрозненности


 
Alkid ©   (2007-04-10 11:36) [232]


> Еще вопрос. Автор, вы знаете, что можно построить в общем
> случае бесконечное число непротиворечивых грамматик для
> одного и того же языка? Отличаться они будут, да хотя бы,
>  названием узлов. Плюс Вы рассматриваете построение парсера
> на основое LALR(1) алгоритма, именно такой алгоритм использовал
> Devin Cook в Gold Parser"е.

Да куда вы лезете со своими грамматиками! :) Мы тут уже обсуждаем более другие вопросы обустройства мира :)


 
pasha_golub ©   (2007-04-10 11:42) [233]


> Alkid ©   (10.04.07 11:36) [232]


> Да куда вы лезете со своими грамматиками!

Пардон! Не проникся с разбегу. :0)


 
infom ©   (2007-04-10 11:44) [234]

> Проблема в том что люди не могут договориться, у них нет
> общего языка, нет общих идей, фактически нет ничего общего,
> ничего их не объединяет.

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


 
xayam ©   (2007-04-10 11:55) [235]

я родился не в том веке, сто баксов ставлю что напишу книгу. Кто поставит против?


 
Alkid ©   (2007-04-10 12:01) [236]


> я родился не в том веке, сто баксов ставлю что напишу книгу.
>  Кто поставит против?

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

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


 
infom ©   (2007-04-10 12:04) [237]

> я родился не в том веке, сто баксов ставлю что напишу книгу.
> Кто поставит против?

Уверен что мы с вами родились в одном веке, может действительно воспользоваться советом форумчан и начать с чтения книг ?
Книги пишите на здоровье, мешать вам никто не будет, другое дело что и воспринимать ваш труд всеръез никто не будет, тогда спрашивается зачем и кому он нужен.


 
Alkid ©   (2007-04-10 12:04) [238]


> xayam ©

P.S. А вообще я очень сильно удивился, что мы с тобой одного возраста.


 
xayam ©   (2007-04-10 12:30) [239]

дело в возрастах. А в том понимаете ли Вы что такое интеллект, понимаете ли Вы как думаете. ТОЛЬКО ПОНИМАНИЕ этого приведет к созданию ИИ.


 
xayam ©   (2007-04-10 12:30) [240]

дело в возрастах:= дело не в возрастах


 
Alkid ©   (2007-04-10 12:34) [241]


> дело в возрастах. А в том понимаете ли Вы что такое интеллект,
>  понимаете ли Вы как думаете. ТОЛЬКО ПОНИМАНИЕ этого приведет
> к созданию ИИ.

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


 
Игорь Шевченко ©   (2007-04-10 12:38) [242]

xayam ©   (10.04.07 12:30) [239]

> А в том понимаете ли Вы что такое интеллект, понимаете ли
> Вы как думаете


"Да, я слышу, я слышу спиной.
А вот думаю чем - не скажу!"
(с) пародия


 
xayam ©   (2007-04-10 13:55) [243]

> to all
О! Почитайте соседнюю ветку, там человек ищет удаленную работу)) А я как раз предлагаю создать структуру для организации этого)) как все просто оказывается. Ладно дам еще одну подсказку в каком направлении копать. Вы знаете что такое на самом деле ИИ? Это когда необходимость в программистах тоже отпадет)) т.е. программы сами будут "писать" программы для решения задач, которые им будут давать люди на привычном им языке. По структуре такая программа будет похожа на сегодняшние вирусы! Никогда бы не поверил! Но это прямое следствие из всего сказанного до этого))


 
Игорь Шевченко ©   (2007-04-10 13:56) [244]

xayam ©   (10.04.07 13:55) [243]

БСК однако


 
infom ©   (2007-04-10 13:58) [245]

> О! Почитайте соседнюю ветку, там человек ищет удаленную
> работу)) А я как раз предлагаю создать структуру для организации
> этого)) как все просто оказывается. Ладно дам еще одну подсказку
> в каком направлении копать. Вы знаете что такое на самом
> деле ИИ? Это когда необходимость в программистах тоже отпадет)
> ) т.е. программы сами будут "писать" программы для решения
> задач, которые им будут давать люди на привычном им языке.
> По структуре такая программа будет похожа на сегодняшние
> вирусы! Никогда бы не поверил! Но это прямое следствие из
> всего сказанного до этого))

Никто тут кроме вас не копает, поэтому и направление нам давать не надо. А ИИ это совсем не то что вы сказали, вы привели пример автоматических систем что не является ИИ. Для начала советую изучить что же такое ИИ, а не пытаться оперировать данным термином не зная смысла и не ведая что в этом секторе уже сделано.


 
Alkid ©   (2007-04-10 14:04) [246]


> О! Почитайте соседнюю ветку, там человек ищет удаленную
> работу)) А я как раз предлагаю создать структуру для организации
> этого)) как все просто оказывается. Ладно дам еще одну подсказку
> в каком направлении копать. Вы знаете что такое на самом
> деле ИИ? Это когда необходимость в программистах тоже отпадет))
> т.е. программы сами будут "писать" программы для решения
> задач, которые им будут давать люди на привычном им языке.
>  По структуре такая программа будет похожа на сегодняшние
> вирусы! Никогда бы не поверил! Но это прямое следствие из
> всего сказанного до этого))

А можешь популярно сказать, что такое ИИ? Над определением этого тоже очень неглупые люди думали, но к единому мнению не пришли.


 
xayam ©   (2007-04-10 14:08) [247]


> А можешь популярно сказать, что такое ИИ?

куда же популярнее)) Вам не понятны какие-то используемые мной термины?


 
Alkid ©   (2007-04-10 14:15) [248]

Да. Термин "Искуственный интеллект".


 
xayam ©   (2007-04-10 14:49) [249]

Короче моделирование мышления человека, самообучающаяся система, свойства которой были записаны в правилах по ссылкам, которые я давал. Понимаешь, человек всегда хотел понять КАК он думает. Когда начинал писать шахматные программы, когда хотел понять/изучить окружающий мир. Но само по себе это изучение ничего не стоит, потому что это мусорная неупорядоченная информация. А ИИ это как раз система, автоматически решающая задачу структурирования (в терминах бд - нормализации) информации любого типа на всех вложенных уровнях. В терминах "Теории всего" ИИ - это бессмертие для исходного кода ОДНОГО проекта, над которым должны работать все программисты.


 
infom ©   (2007-04-10 15:08) [250]

> В терминах "Теории всего" ИИ - это бессмертие для исходного
> кода ОДНОГО проекта, над которым должны работать все программисты.

А что даст работа всех программистов, каким образом все программисты должны работать, неужели будет контора которая будет централизировать разработку ИИ. Неужели создание ИИ такая задача что нужно привлекать программистов программ для Unix или Win32 ? Причем всех ?


 
default ©   (2007-04-10 15:13) [251]

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

всё забываю спросить, а чем вы там дышите?:)на высоте


 
xayam ©   (2007-04-10 15:15) [252]


> А что даст работа всех программистов, каким образом все
> программисты должны работать, неужели будет контора которая
> будет централизировать разработку ИИ. Неужели создание ИИ
> такая задача что нужно привлекать программистов программ
> для Unix или Win32 ? Причем всех ?

как же Вы не поймете, ИИ - это цель. До цели ведет только ОДНА дорога, а пока Вы будете идти по этой дороге решаться все (спорю на любую сумму с любым человеком) проблемы программистов. Как то - удаленная работа, подсветка кода, его документирование, множественное представление исходного кода (схемы, графики текст и т.д.). Я только ПОКАЗЫВАЮ на эту дорогу. Это FreeBSD - только здесь есть будущее, поэтому на эту платформу нужно переносить весь код, будет проще, Вам же (или таким же как Вы).


 
Kerk ©   (2007-04-10 15:18) [253]

> [252] xayam ©   (10.04.07 15:15)

Боже мой


 
pasha_golub ©   (2007-04-10 15:21) [254]


> xayam ©   (10.04.07 15:15) [252]

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


 
infom ©   (2007-04-10 15:26) [255]

> [252] xayam ©   (10.04.07 15:15)

Боже мой
(с)Kerk

> как же Вы не поймете, ИИ - это цель. До цели ведет только
> ОДНА дорога, а пока Вы будете идти по этой дороге решаться
> все (спорю на любую сумму с любым человеком) проблемы программистов.
> Как то - удаленная работа, подсветка кода, его документирование,
> множественное представление исходного кода (схемы, графики
> текст и т.д.). Я только ПОКАЗЫВАЮ на эту дорогу. Это FreeBSD
> - только здесь есть будущее, поэтому на эту платформу нужно
> переносить весь код, будет проще, Вам же (или таким же как
> Вы).

Опять голословие, приведите хоть один аргумент...
Вот вам прямой вопрос по последнему сообщению, только попробуйте на него не ответить:
Каким образом связаны между собой подсветка исходного кода и разработка ИИ ?
Какие проблемы есть и какие вы хотите решить в перечисленных вами областях "удаленная работа", "документирование", "множественное представление исходного кода" ?


 
infom ©   (2007-04-10 15:28) [256]

> [254] pasha_golub ©   (10.04.07 15:21)

Это все стёб ???? Елки-палки... а я тут .... всё сворачиваюсь...


 
xayam ©   (2007-04-10 15:30) [257]


> Каким образом связаны между собой подсветка исходного кода
> и разработка ИИ ?

одинаковая структура

> Какие проблемы есть и какие вы хотите решить в перечисленных
> вами областях "удаленная работа", "документирование", "множественное
> представление исходного кода" ?

ты все читаешь? Или части вырываешь? Все эти области уже подробно описывались выше.


 
default ©   (2007-04-10 15:30) [258]

вечно будут находиться ксаями и с ними всерьёз спорящие:) так устроен мир


 
pasha_golub ©   (2007-04-10 15:44) [259]


> default ©   (10.04.07 15:30) [258]
>
> вечно будут находиться ксаями и с ними всерьёз спорящие:
> ) так устроен мир

Во веки веков! Омон!


 
xayam ©   (2007-04-11 07:45) [260]


> default ©   (10.04.07 15:30) [258]
> вечно будут находиться ксаями и с ними всерьёз спорящие

да, и это тем вернее, чем больше людей говорящих также))



Страницы: 1 2 3 4 5 6 7 вся ветка

Форум: "Прочее";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.37 MB
Время: 0.055 c
11-1158224957
Gens
2006-09-14 13:09
2007.05.06
Равноценная замена


3-1171457314
Ega23
2007-02-14 15:48
2007.05.06
Master-Detail связь через TADODataSet


15-1176093581
vajo
2007-04-09 08:39
2007.05.06
Подскажите с апгрейдом компа.


15-1175881585
kaif
2007-04-06 21:46
2007.05.06
Внимание, вирус!


15-1176086332
Slider007
2007-04-09 06:38
2007.05.06
С днем рождения ! 8 апреля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский