Как узнать на каком языке программирования написана программа

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

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

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

Если вы увидели, что исходный код программы содержит такие операторы, как begin и end, тогда это язык программирования под названием Delphi, который ведет свое начало еще от Паскаля. И если вы посмотрите исходник, написанный на языке Делфи, вы больше не спутаете его с другим.

Распознать язык программы, которая написана в С++, также не представляет особого труда, поскольку у него есть свои характерные черты. Если впервые взглянуть на данный программный код, то перед вашим взором откроется большое количество фигурных скобок. Вместе с тем, для языка С++ характерно наличие комментариев, которые указываются после двойного слеша (//), тем более, что каждый комментарий имеет следующую конструкцию: /* текст комментария */.

Никогда не учите эти языки программирования #програмист #программирование

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

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

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

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

Как узнать на каком языке написано

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

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

Как узнать какой язык программирования тебе подходит?

В первом случае для вас всё сделает специалист. Во втором — проведите анализ текста. К особенностям разных языков относят: направление письма, набор знаков, подстрочных и надстрочных символов и тому подобное.

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

Определитель работает по следующей схеме. Он разбивает текст, который вы ввели в соответствующее поле, на слова. Слова сравниваются с теми, что находятся в базе определителя. Затем он подсчитывает количество совпадений слов разных языков и показывает результат – наиболее подходящие язык или языки (их может быть несколько).

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

Для того, чтобы при проверке текста получить грамотный ответ и быть уверенным в нем, пользуйтесь некоторыми правилами работы.
1) Минимальное количество слов для определения – не менее 20-и. Однако помните, чем больше вы напишите предложений, тем больше вероятность правильного определения языка.
2) Используйте несколько программ-определителей.
3) Если есть возможность, выберите ту часть текста, по которой определение будет самым эффективным.
4) Если есть возможность, проверьте текст и исправьте ошибки.

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

BBmike

Lexperience

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

Ну как же можно пройти мимо незапертой двери с большой надписью СЕКРЕТНО? Тот кто прикрепил эту надпись, сделал все, чтобы приманить любопытных (возможно, подсознательно именно этого и желал).

Читайте также:
Программа свои деньги не работает

POS_troi

А какая разница на чём его писали?
После компиляции всегда один результат — файл с набором инструкций для конкретного процессора.

Так что ваш вопрос должен звучать по другому «какой процессор был в союзе и где на него надыбать декомпилятор»

Lexperience

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

NeiroNx

поделки от microsoft тащут везде свои библиотеки, что можно узнать в списке импорта приложения. GCC будет подключать stdc библиотеки, либо cygwin. Вобще открыв приложение блокнотом можно сразу понять под винду оно или под линух. И большинство прог написаны на С++

73656c6565

Говорят, что настойчивым помогает Гугл (и по ссылкам там погуляйте). Соответственно, скорее всего pascal + asm.

lxsmkv

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

P.S. если вам просто интересно как возможно выглядит такое ПО, и чем в принципе отличается от гражданского, можете посмотреть на ПО Апполона 11 (оно в свободном доступе)

Я понимаю что практически все приложения написаны на java. Но даже это не мешает написать приложение на html 5, вот по этому поводу стало интересно, можно как то узнать на каком конкретно языке программирования написано то или иное приложение?

Средний 5 комментариев

Maksclub

1426706362_849688123.jpg

Максим Федоров, разница в том что если зайти к примеру на googl play и скачать либо какое приложение узнать на каком языке написано приложение нельзя, вот я и спрашиваю можно как то это узнать?

wainer, в чем я основ не понимаю? В том что на мой вопрос посыпалось куча бреда. Не могу понять таких людей, которые пишут этот бред. Или мой вопрос кому то не понятен?

GriNAME

Человек интересуется, как определить на чем писали андроид приложение. На джаве (котлин) или с помощью реактивных решений типа Vue, React и тд

GriNAME

wainer, чисто HTML нет не в тему, а html5 это по сути возможность работать на привычном JS в разметке. Под приложениях на HTML на телефон можно подразумевать реактивные веб фреймворки

streloc84

Я понимаю что практически все приложения написаны на java. Но даже это не мешает написать приложение на html 5

streloc84

Chesterfield25, apk это архив, примерно как zip или rar. Внутри лежат исполняемые файлы, ресурсы и прочее.

Добрый день! Существуют ли готовые решения (опенсорс) для автоматического определения языка программирования по заданному исходнику? Насколько сложно создать подобное самому?
Достаточно ли детектировать несколько ключевых слов или нужно более глубоко парсить код?
Спасибо.

Оценить 1 комментарий

bobrovskyserg

bobrovskyserg

IonDen

bobrovskyserg

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

Поочередно скармливать компиляторам/интерпретаторам нужно, если вам необходимо 100% знать на каком языке написан код. Для обычных ситуаций достаточно его разбирать анализом текста.

bobrovskyserg

egorsmkv:
Ваше замечание сложно оспорить — ведь вы же не поясняете, что есть «обычная ситуация» и что есть «анализ текста».
Придётся согласиться )))

bobrovskyserg: в этом случае — узнать язык программирования файла. Поднимать сотню компиляторов/интерпретаторов не очень выгодня, например, для какого-нибудь git-viewer’a, который подсвечивает код по узнанному языку программирования.

bobrovskyserg

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

  • Как поставить права на просмотр страницы в браузере
  • Файлы разработчика можно ли удалить
  • Программа для поиска дубликатов файлов auslogics
  • Игры с друзьями в браузере как сломанный телефон
  • Как отправить письмо от имени другого пользователя в outlook

Источник: dr-web.ru

batogov/programming-language-detection

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags

Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Читайте также:
Как отключить блокировку программ

Latest commit message
Commit time

README.md

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

Используемые инструменты и библиотеки

  • Python 3;
  • Pandas для работы с данными;
  • BeautifulSoup4 для парсинга данных;
  • Scikit-Learn для применения алгоритмов машинного обучения и т.д.

Одна из самых сложных частей данной работы – создание обучающей выборки. Необходимо было найти большое количество размеченных исходных кодов (исходный код + метка языка програмирования, на котором этот код написан). В качестве сайтов для парсинга рассматривались сервисы, предоставляющие в свободном доступе короткие программные коды на разных языках программирования. Например, gist.github.com или ideone.com. Сайтом для парсинга был выбрал ideone.com по причине удобства парсинга, большего разнообразия и качества исходных кодов.

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

На странице внизу присутствует блог пагинации, с помощью которого можно просматривать более старые сниппеты (так же навигацию можно осуществлять с помощью дописывания к адресу ideone.com/recent/ номер интересующей страницы). Каждый блок с исходным кодом помимо прочего содержит ссылку на страницу сниппета и полезные для нас строки: строку с языком кода и строку с результатом выполнения (компилируется, ошибка компиляции, успешно и т.д.). Перейдя по ссылке из блока мы попадаем на страницу исходного кода, на которой полностью отображается исходный код и ссылка на файл.

Парсер работает следующим образом:

  1. Проходит по страницам от n до k (от ideone.com/recent/n до ideone.com/recent/k);
  2. На каждой странице просматривает все блоки кода и отбирает те, у которых строка с результатом выполнения сигнализирует об успешности;
  3. Для отобранных блоков кода запоминает язык и скачивает исходный файл (парсить исходных код со страницы каждого кода сложно из-за структуры html-кода);
  4. Финальный отбор – скрипт оставляет только те исходные коды, количество строк в которых не превышает 50. Это необходимо для того, чтобы отсеять громоздкие сниппеты, которые будут вредить алгоритму машинного обучения из-за того, что скорее всего помимо «полезной выжимки» кода будут содержать много мусора;
  5. Если это первый запуск скрипта, то он создаёт файл raw_data.csv и записывает в него результат. Иначе открывает этот файл и дозаписывает результат.

Парсер в процессе своей работы посылает много запросов на сайт ideone.com, из-за чего часто возникают http-ошибки. Чтобы ошибки не прерывали процесс парсинга, написана функция-обёртка с обработчиком исключений, который при возникновении ошибки продолжает процесс парсинга.

Код отвечающий за парсинг и сохранение его результатов в .csv находится в файле data_parsing.py.

С помощью вышеописанного алгоритма была собрана выборка размером 12923 объектов. Из-за нехватки времени и того факта, что скрипт-парсер работает медленно, создать выборку большего объёма не представилось возможным. Так же из недостатков собранной выборки стоит отметить дисбаланс классов. Например, исходных кодов на языке «C» в десятки раз больше, чем на языке «Python».

Следующий этап работы – обработка выборки. Идеальным алгоритмом обработки сырых данных в данной работе будет алгоритм, который сможет удалить из исходных кодов все «малозначащие» элементы. Забегая вперёд стоит отметить, что алгоритм машинного обучения, который мы будем использовать далее, будет оперировать численными представлениями слов наших исходных кодов.

Соответственно, классификация будет основана на различии комбинаций этих численных представлений. Чтобы качественно выполнить эту задачу, алгоритму необходимо подготовить данные таким образом, чтобы тексты кодов на разных языках программирования имели разные особенности, т.е. нужно удалить всё общее, что имеют коды на разных языках программирования. Эти общие части я и называю в данном контексте «малозначащами» элементами (например, имена переменных и их значения или комментарии в тексте кода).

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

Однако, небольшую обработку кодов сделать можно. А именно:

  • Удалить все символы переноса строк и табуляции;
  • Удалить все цифры;
  • Удалить лишние пробелы – оставить только пробелы между словами.

Построение модели и результаты

После обработки текстов можно приступить к построению модели. В этой работе я использую линейный классификатор (минимизация с помощью стохастического градиентного спуска), векторизацию данных с помощью TF-IDF и схему n-грамм (1, 4).

По результатам валидации, лучшая модель имеет следующие параметры: alpha – 0.0001, penalty – none, loss – hinge.

Качество модели ≈ 0.83.

Источник: github.com

Как определить на каком языке написана программа

Как узнать язык программы, на которой она была написана?

Ответ мастера:

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

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

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

Если вы увидели, что исходный код программы содержит такие операторы, как begin и end, тогда это язык программирования под названием Delphi, который ведет свое начало еще от Паскаля. И если вы посмотрите исходник, написанный на языке Делфи, вы больше не спутаете его с другим.

Читайте также:
Как в программе handy recovery

Распознать язык программы, которая написана в С++, также не представляет особого труда, поскольку у него есть свои характерные черты. Если впервые взглянуть на данный программный код, то перед вашим взором откроется большое количество фигурных скобок. Вместе с тем, для языка С++ характерно наличие комментариев, которые указываются после двойного слеша (//), тем более, что каждый комментарий имеет следующую конструкцию: /* текст комментария */.

Такой язык программирования, как C#, появился совсем недавно и активно используется для создания программных приложений компанией Microsoft. Он достаточно удобен, а также имеет некие черты с языком С++.

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

Для читки исходного кода программы на языках С, С++, С# и VB необходимо использовать среду Microsoft Visual Studio, а для Делфи — Borland Delphi.

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

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

Как определить язык программы?

Как узнать, на каком языке написана программа?

Как определить язык текста?

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

Формулировка задачи
  • нужно по фрагменту текста определить его язык. Длина фрагмента — от нескольких слов до нескольких десятков предложений. Это может быть связный текст или, например, заголовок статьи;
  • текст дан в кодировке UTF-8;
  • набор интересующих меня языков жестко задан. Количество языков — 5..10. В рабочем приложении можно даже ограничиться меньшим количеством, чтобы увеличить точность определения;
  • текст может содержать включения других языков. Нужно определить основной (более 60% слов, например);
  • для моей задачи не всегда нужно точно определять. Например, чаще всего не нужно различать украинский и русский;
  • автор текста знает язык, на котором пишет.

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

Алгоритм моих действий примерно такой:

  • смотрю на набор символов, которые встречаются в словах. Причем, именно по словам, а не по всему тексту, т.к. в тексте могут быть «иностранные» слова. На этом этапе уже можно исключить две трети языков.
  • ищу характерные союзы и предлоги — по ним можно разделить языки с одинаковым набором символов
  • пытаюсь прочитать текст, исходя из предположения, что он написан на языке, который определился. Мне сложно сказать, что происходит на этом этапе… Думаю, это сложный анализ грамматики языка. Я распознаю известные мне слова, проверяю окончания.
Несколько примеров несостоятельных алгоритмов

vitali.at.tut.by — статистический алгоритм, основанный на подсчете количества двухбуквенных сочетаний в тексте. Протестировать не удалось, т.к. бинарник с сайта удалили. Перловый модуль. Живой пример, который сказал, что эта статья написана на турецком. Еще есть статья про нейросетевые классификаторы и семантический анализ:В полиграммной модели со степенью n и основанием M текст представляется вектором , i = 1..Mn, где fi – частота встречаемости i-ой n-граммы в тексте.n-грамма является последовательностью подряд идущих n – символов вида a1…an-1an. — нихрена не понял Дальше искать не стал.

Пример состоятельного алгоритма

Переводчик Google прекрасно определяет язык по нескольким словам. Его не сбивает с толку даже включение «иностранного» слова в предложение.

P.S.

Еще у меня есть странное желание проделать это на стороне клиента, с использованием javascript. Не думаю, что анализ нескольких слов требует обращения к Google Language API…

P.S. 2
  • язык
  • определение языка
  • язык ввода
  • мультиязычность
  • google translate

Переводчик онлайн — определить язык автоматически

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

Бывают ситуации, когда сложно определить, на каком языке написан иностранный текст. Многие в такой ситуации теряются, но более продвинутая часть населения предпочитает обратиться к переводчику с определением языка онлайн. Удобный и невероятно полезный, переводчик языков онлайн от «m-translate.ru» развеет ваши сомнения в один миг.

Не нужно перебирать десятки вариантов, чтобы определиться, с каким именно языком вы имеете дело! Наш «интеллектуальный» переводчик онлайн позволяет определить язык в два счета – просто введите или вставьте нуждающийся в переводе текст в соответствующую форму, выберете автоматическое определение языка и через мгновение уже читайте предоставленный программой результат. Такая функция позволяет не только разрешить языковые трудности, но и ощутимо сэкономить ваше время. Желаем удачи!

Источник: info-lite.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru