В исходных данных имеем это:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,NeuralMachine, StdCtrls, Neural_lang, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
first:boolean=true;
implementation
{$R *.dfm}
procedure TForm1.Timer1Timer(Sender: TObject);
var tm:_SYSTEMTIME;
ms,sc:longint;
begin
if first then
begin
GetSystemTime(tm);
ms:=tm.wMilliseconds;
sc:=tm.wSecond;
randseed:=ms+sc*65536;
//randseed:=23;
first:=false;
if DoNeuralMachine then close
else
begin
canvas.Font.Name:='Arial Narrow';
canvas.Font.Size:=30;
canvas.TextOut(30,32,'Нет решений');
end;
end;
end;
После решения описанной ниже задачи имеем следующее:
unIT s3q7e;
IntErfAce
uSEs
Q20W26H, CyRVu4JV, A6s0X8r3, h3Z5O7Ba, k96a8QW, h5761V4Q, U936B28U, DzVL6,
f3iOOb0,y68rA0q81VmUI, ZO1A3216, qY76001m5y4, u374O1Sn;
tyPE
W017m7 = cLAss(Bm310)
K26aa9: mbH2Qx;
prOCeDUrE _pP5D865x74(r77rbP: w2NWq8K);
prOcEdUre F988Rm35N6(jc4nv7: q05N1Wo);
PrIvate
{ PRiVATE d03o3hDHu488 }
publIc
{ publIC W93428xOMXZj }
end;
vAR
MnHzC: bj70s1;
CMC52:g7JX311=J500;
iMPlEMentAtIon
{$ *. }
procedUrE QDQNR1.V02VacQsPjS(R85377: Z3Io7i2);
VaR oZ:GY03ps8xVVr;
ah,Rh:e5F0Cq9;
Begin
iF t1fF9 ThEN
Begin
p2Lf31u214Kq5(gX);
C3:=Yx.Va2UofA_8h7k7;
v7:=v2.T3W189D;
v2_5L7ml:=u1+Ct* ;
//N0RYQ9s9:= ;
dB5I3:=H99r4;
iF Tp81801l2lRsX33 tHEN a0zis
ElsE
BEgiN
H0k3vV.Ibp1.f597:=' ';
fVR29r.P29e.lT5a:= ;
los5ZL.rpID79e( , ,' ');
EnD;
END;
enD;
Здесь пример обработки pas-файла. Реализован перевод текста программы Delphi на 1-й уровень абстракции а затем возврат из абстрактного вида обратно в конкретный вид. В первой цитате исходный текст а во второй цитате можем видеть что в результате получилось.
Зарезервированные слова Delphi распознаются отлично и при возврате из абстрактного в конкретный вид буквы получаются прыгающего размера - это потому что на абстрактном уровне я не сохраняю информацию о размере букв. Так же видим что имена переменных и функций тоже не сохранились - это потому что на 1-м уровне абстракции я не сохраняю имени переменной а сохраняю лишь информацию о том что здесь находитсяя переменная. При генерации конкретного вида из абстрактного система просто создает случайное имя переменной удовлетворяющее общему виду переменных. Так же видим что на месте чисел пусто - это потому что я пока вообще не сделал распознавание чисел и в абстрактном представлении информация о них не сохраняется поэтому при генерации конкретного вида эти места воспринимаются как что-то где ничего не распозналось и они остаются пустыми.
Интересно то что код на моем языке можно составлять так как если бы нам нужно было только распознавание - т.е. мы описываем как должны распознаваться те или иные вещи исходных данных. Но в результате система может использовать это описание не только для распознавания исходных данных но и обратную операцию - генерацию исходных данных из абстрактного представления. Это ключевой момент в использовании моего языка программирования. В случае если бы мы пытались нечто подобное реализовать на каком либо алгоритмическом языке нам бы пришлось писать две разных процедуры для распознавания и для обратной распознаванию операции (которая называется - дедукция. Та самая которую применял Шерлок Холмс ). Кроме того возможны смешанные ситуации когда входные данные определены частично и выходные тоже - т.е. это не относится к чисто распознаванию или чисто генерации конкретного из абстрактного - это смешанная задача в которой в разных частях процесса решения работает то распознавание то генерация причем и то и другое взаимосвязано т.е. результаты распознавания могут быть затем использованы для генерации а результаты генерации могут быть использованы для распознавания - все это в процессе решения задачи. Процесс решения задачи получается очень сложным. Если бы мы пытались этот процесс реализовать на алгоритмическом языке то нам пришлось бы писать уникальный алгоритм для решения каждого типа смешанной задачи которая возможна - для каждой комбинации определенности-неопределенности входных и выходных данных. Т.е. это практически бесконечность типов алгоритмов. В моем же языке все эти задачи могут решаться с использованием всего лишь однократного описания. Т.е. программа на моем языке программирования эквивалентна некоторому множеству (как правило практически бесконечному, или что то же самое - континууму) программ на алгоритмическом языке. Т.е. вместо того чтобы писать триллионыы специальных программ на каждый случай жизни мы пишем всего лишь одну модель на моем языке программирования заменяя тысячи и тысячи человекочасов труда программистов всего лишь несколькими часами труда одного программиста, а в некоторых случаях и вообще решая задачи не разрешимые на практике никаким количеством человекочасов обычного программирования.