Перейти к содержанию

Програма Для Создания Програм


Рекомендуемые сообщения

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

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

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

А я здесь для чего спрашиваю? Выяснить знает ли его кто-то ещё? :)

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

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

А здесь, я бы тоже хотел бы научиться пользоваться ПРОГРАММКОЙ для создания ПРОГРАММ, а тут без языка какого-либо (в данном случае) не обойтись.

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

В HTML то вопросы иногда возникают, что в учебнике не всегда просечешь сходу...

Да и топикстартер не создал бы эту тему, будь он программистом.

Изменено пользователем vgelec
Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

А вот собственно, чем Процедуры отличаются от Подпрограмм?
Во первых, в процедуру можно передать данные через её аргуметры, как это сделано в первом примере. Там аргументы процедуры - переменные a и b. Это локальные переменые, доступные только в данной процедуре. Это значит что в основной программе или в других процедурах могут быть переменные с такими же именами и они ничего общего иметь не будут.

А в подпрограмме все переменные общие с другими подпрограммати и основной частью программы.

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

Как же так? Ведь тогда переменная Процедуры получится а+б ? А не х... а+б-будет тогда переменая Процедуры?

Или из-за оператора + она не может быть переменной?

Переменные всех процедур являются локальными (изолироваными от остальной части программы). Это одно из отличий между процедурами и подпрограммами.

В данном случае нет принципиальной разницы какое имя у переменной, которая хранит результат.

Например, если мы сделаем так

Procedure Plus(a, b)
 x=a+b
EndProcedure

Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(x) )

то не получим правильный результат, хоть и в процедуре и в основной части программы использованы одноимённые переменные, т. е. х

А вот есть запишем так, то всё работает

Procedure Plus(a, b)
ProcedureReturn a+b
EndProcedure

Pesult=Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(Pesult) )

хоть тут переменной х вообще нет.

Будет работать и так

Procedure Plus(a, b)
y=a+b
ProcedureReturn y
EndProcedure

Pesult=Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(Pesult) )

Из этого следует что оператор ProcedureReturn просто копирует результат из локальной переменной в другую переменную, расположеную перед именем вызываемой процедуры.

И еще в книге говорится о переводе String в числовой формат и потом наоборот... что-то про это упомянуто, но не раскрыто. Функцией ValQ()...
Есть несколько типов переменных. Тип переменной указывается после имени при первом использовании переменной. Если тип не указан явно, то будет использован тип LONG.

Таблицу с описанием типов можно найти здесь

Функция ValQ() предназначена для преобразования числа в строке и для записи результата в переменную типа Quad, в которой могут хранится целые положительные и отрицательные числа в пределах от -9223372036854775808 до +9223372036854775807

Но на практике чаще используется функция Val(), используется для преобразования строки в число, хранимое в переменной LONG.

Ещё существуют функции ValD(), ValF(), которые работают с дробными числами.

Для преобразования числа в строку используются функции Str(), StrD(), StrF(), StrQ(), каждая для своего типа переменной.

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

И еще непонятно почему в создании окна описывается Q=1
Это вовсе необязательно.

Просто считается "хорошим тоном" когда в программе есть только одна точка завершения работы, т. е. директива End.

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

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

Имя переменной может быть любое, да и использовать её необязательно.

Изменено пользователем *PB*
Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Продолжаю про процедуры.

Выше я привёл такой код, который не работает как задумано, т. е. не возвращает данные из процедуры.

Procedure Plus(a, b)
 x=a+b
EndProcedure

Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(x) )

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

При необходимости, некоторые переменые можно сделать глобальными (доступными во всей программе) с помощью оператора Global

Вот этот пример уже работает как следует

Global x; Переменная х - глобальная

Procedure Plus(a, b)
 x=a+b
EndProcedure

Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(x) )

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

Поэтому нестоит много переменных делать глобальными, особено в больших программах.

Но есть альтернативное решение - сделать определённую переменную из основной части программы доступной только в данной процедуре а в дригих нет. Для этого служит оператор Shared, который следует размещать в начале процедуры.

Procedure Plus(a, b)
Shared x 
 x=a+b
EndProcedure

Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(x) )

Если по какой либо причине нужно сделать переменную глобальной с помощью оператора Global и в одной из процедур есть переменая с тем же именем, но несвязаная с этой глобальной переменной, то такую переменную можно сделать локальной несмотря на то, что она глобальная. Для этого служит оператор Protected, размещаемый в начале процедуры

Global x

Procedure Plus(a, b)
Protected x 
 x=a+b
EndProcedure

Plus(10, 20)
MessageRequester("","10 + 20 = "+Str(x) )

Теперь переменная x в процедуре, будет локальной несмотря на то, что она объявлена как глобальная.

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

Изменено пользователем *PB*
Ссылка на комментарий
Поделиться на другие сайты

А я здесь для чего спрашиваю? Выяснить знает ли его кто-то ещё? :)

Проблема не в том чтобы научится конкретному языку, а НАУЧИТСЯ делать программы. Тьфу, что я говорю, ведь ПРОГРАММА это не то что ты запускаешь щелчком мыши... нет, в данном случае имеется в виду АЛГОРИТМ.

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

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

И такие вещи надо просто знать еще ДО начала программирования.

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

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

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

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

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

ПРОГРАММА это не то что ты запускаешь щелчком мыши... нет, в данном случае имеется в виду АЛГОРИТМ.

Это совсем никак не соотносится к вопросам по терминам. Это больше к теме: "Как стать программистом".

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

К примеру, было дело вбивались мне в голову когда-то и Фортран и Бэйсик, да за ненадобностью все похерилось.

Однако кой-чего из серии АЛГОРИТМ мне знакомо. Нынче языки другие и потребности тоже. Раньше мне ЛИЧНО не надо было и не было интересно расписывать закон ома на 3 портянках, потом набивать это на перфокарты, нести в ВЦ на два этажа и получать распечатку. Это требовала система образования в ВУЗе. То же самое и по Бэйсику, который было за чудо написать, ввести в Электронику, записать на стриммер, и потом увидеть радостно зелёные буквы и цифры на экране. Это было не нужно и не интересно. А сегодня я сам могу (уже) слепить окно со своими размерами и залепить код (пусть пока не свой) и поглазеть на своём старом ноуте, как это так выходит моих рук творенье.

Так "придирка" Ваша к теме по конкретному языку это подходит с натягом. ;)

И такие вещи надо просто знать еще ДО начала программирования.

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

Вы знаете, сляпать сайт совсем необязательно изучать весь HTML (его правда не стоит приводить в качестве примера, чтобы не вызывать улыбки НАСТОЯЩИХ программистов), теги и порядок - вот вам и сайт.

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

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

Очень мудро и с этим нельзя не согласится!

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

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

Кроме того, я лично не считаю, что, чтобы открутить гайку в своём авто нужно изучать пару месяцев ГОСТы и резьбы. Это может сделать и автослесарь и программист. Однако автослесарь будет ухмыляться и говорить программисту: Эк ты батенька неловкий какой, это ж надо было с детства увлекаться механикой, да пару лет в путяге попариться, с азов надо начинать, так сказать руку набивать". Однако более чем уверен, что заинтересованный программист освоит не только гаечные ключи, но и метчики и плашки со свёрлами. :) Я конечно утрирую, но надеюсь Вы уловили суть.

Я лично никогда не "заталкиваю чела" на 0, если он что-то спрашивает, суясь в область, до селе ему неведомую. Ежели я спец в чём-то, то почему бы не подсказать, ежели у чела к тому интерес, а не просто праздная болтовня? Вы это конечно и не говорили, но вот представьте Вы как пацан просите отца: "Пап, а Пап, дай вот на это полянке в лесу на машине порулить...я же уже знаю как ею управлять в принципе." И если, следовать Вашему понятию ответ отца будет таким:" Да нет, сынок, машина это не игрушка, надо сначала правила дорожного движеня изучить, а потом в машину садиться..." ;)

2 РВ спасибо за терпение! :)

В принципе, там эти объяснения есть в книге.

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

А вот эта часть принадлежит процедуре или это уже во внешней части программы?

Plus(10, 20)

MessageRequester("","10 + 20 = "+Str(x) )

А как они могут обнулиться, если например мы прописываем Процедуру с А и Б наверху программы и потом вызываем её неоднократно в других местах? Обнуляются только переменные внутри процедуры или вот эти, с результатами выполнения в каждом вызове?

Plus(10, 20)

MessageRequester("","10 + 20 = "+Str(x) )

Или вы имеете ввиду,что в каждой процедуре цикл начинается с 0 при каждом её вызове?

Изменено пользователем vgelec
Ссылка на комментарий
Поделиться на другие сайты

"Пап, а Пап, дай вот на это полянке в лесу на машине порулить...я же уже знаю как ею управлять в принципе." И если, следовать Вашему понятию ответ отца будет таким:" Да нет, сынок, машина это не игрушка, надо сначала правила дорожного движеня изучить, а потом в машину садиться..." wink.gif

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

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

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

А вот эта часть принадлежит процедуре или это уже во внешней части программы
Это уже основная программа. Код процедуры располгагается только между оператороми Procedure и EndProcedure.
А как они могут обнулиться, если например мы прописываем Процедуру с А и Б наверху программы и потом вызываем её неоднократно в других местах?
Агрументы процедуры это тоже локальные переменные.

Я особо не вдавался в подробности обнуления локальных переменных, но подозреваю что это происходит так: При входе в процедуру, для всех её переменных выделяется память (а она заполнена нулями), а при выходе из процедуры, память освобождается, т. е. переменные уничтожаются.

Изменено пользователем *PB*
Ссылка на комментарий
Поделиться на другие сайты

Alexeyslav ,

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

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

Но спасибо за ваши замечания, они будут непременно учтены!

Изменено пользователем vgelec
Ссылка на комментарий
Поделиться на другие сайты

А чего непонятно-то? Топикстартер, также как и я не имели понятия, что есть программы (программные редакторы) для создания программ. А если он и имел (я догадывался, но не имел четкого представления), то спрашивает совета какой бы ему посоветовали. Все просто. ;)

Ссылка на комментарий
Поделиться на другие сайты

Возник еще попутный вопросец от чайника.

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

Это я так понимаю, нужен какой-то декомпилятор и потом компилятор именно для этого языка.

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

А открыть код (декомпилировать) можно только именно в подходящей для языка написания программе?

Ссылка на комментарий
Поделиться на другие сайты

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

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

СПС. А можно скажем программу написанную на Делфи вскрыть ассемблером? (спрашиваю для чисто ознакомления, так как понял уже, что прикидываемое у меня не выйдет) Или Ассемблером можно вскрыть только то,что было написано на Ассемлере?

А как же люди-хакеры-пираты копируют программные коды из программ? Или это невозможно?

Вот сделаю я программку на РВ, отправлю её в .ехе, и что уже никто не сможет узнать, что я там понаписл в коде?

И как насчет этого вопроса:

А есть какие-то боле-менее универсальные компиляторы, чтобы написал в одном из нескольких языков, а он потом переведет машинный код в программу?
Изменено пользователем vgelec
Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

А можно скажем программу написанную на Делфи вскрыть ассемблером? (спрашиваю для чисто ознакомления, так как понял уже, что прикидываемое у меня не выйдет) Или Ассемблером можно вскрыть только то,что было написано на Ассемлере?

Для делфи есть прога DeDe - она по паттернам компилятора может восстановить исходный код на ДЕЛФИ. Но не удивляйтесь если Вы лично в этом коде ничего не поймете ... ведь все имена переменных и объектов останутся только у программиста писавшего эту программу... И если в программе передусмотрены защиты, то после компиляции этого кода они работать не будут... собственно может и не заработать сама программа.

А как же люди-хакеры-пираты копируют программные коды из программ? Или это невозможно?

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

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

ЛЮБОЙ компилятор. Например FreePascal, Delphi, С++, VB, HIASM и целая куча других менее известных...

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

ЛЮБОЙ компилятор. Например FreePascal, Delphi, С++, VB, HIASM и целая куча других менее известных...

нет,я имел ввиду, что ежели например я напишу код на Бэйсике, может какой-то универсальный компилятор (а не родной Бэйсик), скомпилировать его?

Ну или не обязательно Бэйсик... Есть какие-то универсальные к языкам компиляторы?

Или вы правильно поняли вопрос и уже ответили на него?

Ссылка на комментарий
Поделиться на другие сайты

Ну здрасте, вы хотите чтобы компилятор разобрал на каком языке написана программа и скомпилировал СИЕ? Т.е. просыается программист и думает эээ... СЕГОДНЯ ЭТУ часть программы пишу на таком-то языке, а компилятор сам разберется...

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

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

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

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

Ну да, чуть было еще не забыл ... существует множество компиляторов для одного и того же языка, но ... почему они существуют? А вот именно! Все кроется в деталях. В каждой версии свои особенности и как правило если текст программы написан на одном языке, то "хелло ворлд" прокатывает на всех компиляторах, а более сложные конструкции - не всегда! И их приходится напильником подтачивать под конкретный компилятор. Посмотрите хотябы на Делфи vs FreePascal - язык вроде один, но программа написанная на делфи маловероятно что сразу скомпилируется на FreePascal. и там и там есть свои фишки, однако если применять только базовые операторы языка паскаль - и там и там все скомпилируется на ура с высокой степенью вероятности.

Изменено пользователем Alexeyslav

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо за пояснения и просвещение.

вы хотите чтобы компилятор разобрал на каком языке написана программа и скомпилировал СИЕ? Т.е. просыается программист и думает эээ... СЕГОДНЯ ЭТУ часть программы пишу на таком-то языке, а компилятор сам разберется...
Именно так я и хотел, до вашего объяснения. И по не зананию насколько это все продвинулось, а также по простоте своей и наивности предполагал,что нет ничего сложного в том, что "УНИВЕРСАЛЬНЫЙ" компилятор считывал бы некий код в начале кода, говорящий ему, что это язык Бэйсик дружище или Делфи, С, С++ или ещё что-то, и потом подключал бы свои соответсвующие модули соответствующие для введеного языка, и компилировал бы. Так мне представлялось...но нет так нет...для того и спрошено, чтобы узналося. ;)

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

Программисту ничего бы не стоило ввести в код метку, например понятную такому компилятору типа: Сделано в Бэйсик.

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

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

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

Ну да, вот это имелось ввиду собственно говоря... :rolleyes:

Изменено пользователем vgelec
Ссылка на комментарий
Поделиться на другие сайты

Я работаю с АСУТП. Контроллеры и верхний уровень различных производителей. Все программные и графические (те же программные, так как там ещё и скрипты для динамики) редакторы очень похожи, но тем не менее не совместимы. В редакторе программа пишется в различных видах: - есть текстовые, есть LD, SFC, FB - различные варианты графического редактирования. После создания программы она компилируется (в современных контроллерах автоматически при прогрузке). После этого программу в контроллере не увидеть. Тем не менее её можно изменять, но изменяется программа сохранённая в базе данных и вновь компилируется и грузится. Ярким примером невозможности декомпилирования в исходник является отсутствие возможности произвести UPLOAD программ из контроллеров, а вот базы данных выгружаются.

Была необходимость изменить Dll. В основном переводы. Запрашивали в фирмах исходники.

Попробуйте самое простое - редактируйте *.doc в *.pdf, а потом примените ломалку pdf. Исходник ни когда не получите.

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

У меня был коллега писавший программы в онлайне, в восьмеричном коде!!! То есть непосредственно в кодах машины.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...