TEB писал(а):Михайло писал(а):Конвертация из логических языков (LD, FBD, IL) в plaintext-язык (ST) и ДАЖЕ обратно теоретически возможен, главное как-то ограничить систему команд одного языка, расширить систему команд другого языка, все подогнать и в итоге при конвертации можно получить плохо читаемые, но все же автоматически конвертированные коды...
Да я и практически это видел, и пользовался, причем давно. Вполне нормально конвертировалось, причем даже обратимо (из ЛД в СТ и потом обратно - на выходе ровно та же ЛД что и была в исходнике написана).
Будьте добры, конвертируйте пожалуйста для пробы из IL в ST или через LD. Файл прилагаю, текст получен из исходного ST.
Сам не могу, нет такой программы. Интересно что получится и какая же программа это умеет ?
Это же очень трудно проанализировать рассыпанные по программе конструкции, например, двухстрочного цикла (заголовок и конец + тело) FOR размазан по всей программе IL и кго собрать непросто. Или конвертор "заточен" под свои же типовые конструкции ?
список переменных (общий для LD IL ST)
VAR IL=ST=LD.txt
программа на IL
IL.PROGR.txt
программа на ST
исходная ST.PROGR.txt
Код: Выделить всё
PROGRAM PLC_PRG
VAR
BUF:INT;
D1: ARRAY [0..49,0..4, 0..7] OF INT;
D2: ARRAY[0..49,0..4, 0..7] OF INT;
SRC:ARRAY [0..49] OF INT;
SZE: INT:=50;
SZE2: INT:=5;
SZE3: INT:=8;
W: INT;
W2:INT;
W3:INT;
IND2:INT:=20;
END_VAR
Код: Выделить всё
LD 0
ST W3
for1_0:
LD W3
GT SZE3
JMPC endfor1_0
LD 0
ST W2
for2_0:
LD W2
GT SZE2
JMPC endfor2_0
LD 0
ST W
for3_0:
LD W
GT SZE
JMPC endfor3_0
LD W
ST D1[W,W2,W3]
LD W
LE IND2
NOT
JMPC else4_0
LD W
MUL W
ST D2[W,W2,W3]
JMP end4_0
else4_0:
LD SRC[W]
ST D2[W,W2,W3]
end4_0:
LD W
ADD 1
ST W
JMP for3_0
endfor3_0:
LD W2
ADD 1
ST W2
JMP for2_0
endfor2_0:
LD W3
ADD 1
ST W3
JMP for1_0
endfor1_0:
Код: Выделить всё
FOR W3:=0 TO SZE3 DO
FOR W2:=0 TO SZE2 DO
FOR W:=0 TO SZE DO
D1[W,W2,W3]:=W;
IF W<= IND2 THEN D2[W,W2,W3]:=W*W;
ELSE D2[W,W2,W3]:=SRC[W];
END_IF;
END_FOR;
END_FOR;
END_FOR;
PS: для
Ryzhij и Михайло: еще одна польза от конвертации в IL : можно сохранить программу в обычном текстовом файле
У вас нет необходимых прав для просмотра вложений в этом сообщении.