- Как определить язык программирования по коду онлайн
- Как определить язык программирования
- Способы определения языка программирования в коде программы
- Заключение
- Detecting Programming Languages From Code Snippets
- Preparing the source dataset
- Как узнать язык программирования в коде программы?
- Как определить язык программирования
- Способы определения языка программирования в коде программы
- Заключение
- Автоопределение языка программирования по коду?
Как определить язык программирования по коду онлайн
Бывают случаи, что на вашем пути встречается какой-нибудь годный софт и тогда
возникает вопрос, как узнать язык программирования ?. Для чего этого
нужно?
Ситуации могут быть разные:
- хочется сделать подобную программу на таком же языке;
- вы новичок и хотите стать программистом, а какой язык программирования учить пока не удалось определить;
- просто понравился синтаксис и минимализм кода и понимаете что на другом языке это все выглядело куда бы массивней;
- просто возник интерес как определить язык программирования по коду этой программы;
- и др.
Как известно, языков программирования огромное множество. Есть старые, которым
по несколько десятков лет, но есть и новые, которые вышли вот-вот. Есть
популярные и не популярные, развивающиеся и мертвые. И если стоит задача
написать какую-то программу, а на каком языке это реализовать вы не понимаете ,
то выбор будет не очень легким.
Как определить язык программирования
Пока единого сервиса, чтобы определить язык программирования по коду, не
существует. Реализация этой идеи связана с большим разнообразием ЯП. Многие
из них происходят друг от друга и по этому вроде похожи, но в целом — это разные
языки и используются для разных целей.
Но все же, чтобы узнать на каком языке написана программа, можно по крайней
мере попытаться использовать некоторые хитрости. Это не даст 100%-ой гарантии,
что вам удастся определить, но по крайней мере существенно снизит круг поиска.
Способы определения языка программирования в коде программы
Итак, несколько хитростей, как узнать на каком языке написана программа:
- Языков очень много — это факт. Но основных, которые используются всего
несколько десятков. И все же им присущи определенные отличительные
черты. Поэтому имеет смысл в первую очередь посмотреть синтаксис
программы и его конструкцию. Если вы уже имеете определенный опыт в
программировании, тогда вам будет легче это сделать. Если опыта нет, тогда
нужно будет найти в сети пример кода основных популярных языков и
сравнить код на схожесть с вашим исходником. Часто языки отличаются
наличием и использованием тех или иных операторов, которые бросаются в
глаза. Или в некоторых языках есть специфичность использования скобок пробелов, табуляции, знаков препинания и т. д. На это нужно обратить
внимание и как и сравнить ваш исходник с найденным примером. - Еще одна хитрость – это использовать онлайн-компиляторы кодов. Иногда,
чтобы определить язык программирования по коду — достаточно его
пропустить через соответствующий компилятор. Так как популярных языков не
так много, по многим из них есть онлайн-компиляторы. Поэтому можно ваш
исходник пропускать поочередно по каждому из них, пока не «сработает». Как
только код «сработает», можно будет предположить, что ваш код написан на
том коде, чей компилятор вы используете. - Можно воспользоваться небольшой программой PeiD. Нужно будет найти ее в
интернете, скачать актуальную версию и установить к себе на компьютер. Он а
может помочь вам в вопросе, как узнать на каком языке написана программа и
определить язык программирования по исходному коду. Это не ее прямое
предназначение, но она может помочь, компилятор, а соответственно и язык
программирования.
Заключение
Утилита PeiD не всегда дает 100%-ый результат, но во всех случаях ограничивает
список возможных языков. Если обобщить все написанное выше, то получается
чтобы определить язык программирования с большой точностью,
необходимо иметь хотя бы небольшие познания в программировании. Потому что
«докручивать» результат придется самостоятельно анализируя полученные данные.
Потому что только по синтаксису и конструкции кода, можно определить язык
программирования. Соответственно нужно как минимум понимать что такое
синтаксис, оператор, конструкция и другие базовые вещи.
Поэтому полным чайникам в программировании будет сложно узнать на каком языке написана программа, однако, если немного «прокачаться», то все возможно.
Detecting Programming Languages From Code Snippets
Today a piece of software code is available in the public domain in several forms. Also, every large enterprise today has many software applications developed using multiple programming languages.
The number of programming languages exceeds 500+ and each programming language follows a specific structure. It is always difficult to identify the programming language from a piece of code especially if it is available without a file extension.
Every programming language today consists of set of keywords and a standard language syntax. What if we could find a way to model this knowledge using a machine learning model, which can understand a piece of code and predict the programming language based on the code contents?
Disclaimer: I’ll only be providing the key-concepts and algorithms in this blog post, and will not be going in-depth into the back-end codebase (github link for codebase is already provided in the end of this blog).
Preparing the source dataset
Before we set sail on this adventure, we need to collect enough code snippet samples that our machine learning model can be trained and tested successfully.
We can do so by scraping the below websites, which log a tremendous amount of code snippets on daily basis.
Как узнать язык программирования в коде программы?
Бывают случаи, что на вашем пути встречается какой-нибудь годный софт и тогда
возникает вопрос, как узнать язык программирования ?. Для чего этого
нужно?
Ситуации могут быть разные:
- хочется сделать подобную программу на таком же языке;
- вы новичок и хотите стать программистом, а какой язык программирования учить пока не удалось определить;
- просто понравился синтаксис и минимализм кода и понимаете что на другом языке это все выглядело куда бы массивней;
- просто возник интерес как определить язык программирования по коду этой программы;
- и др.
Как известно, языков программирования огромное множество. Есть старые, которым
по несколько десятков лет, но есть и новые, которые вышли вот-вот. Есть
популярные и не популярные, развивающиеся и мертвые. И если стоит задача
написать какую-то программу, а на каком языке это реализовать вы не понимаете ,
то выбор будет не очень легким.
Как определить язык программирования
Пока единого сервиса, чтобы определить язык программирования по коду, не
существует. Реализация этой идеи связана с большим разнообразием ЯП. Многие
из них происходят друг от друга и по этому вроде похожи, но в целом — это разные
языки и используются для разных целей.
Но все же, чтобы узнать на каком языке написана программа, можно по крайней
мере попытаться использовать некоторые хитрости. Это не даст 100%-ой гарантии,
что вам удастся определить, но по крайней мере существенно снизит круг поиска.
Способы определения языка программирования в коде программы
Итак, несколько хитростей, как узнать на каком языке написана программа:
- Языков очень много — это факт. Но основных, которые используются всего
несколько десятков. И все же им присущи определенные отличительные
черты. Поэтому имеет смысл в первую очередь посмотреть синтаксис
программы и его конструкцию. Если вы уже имеете определенный опыт в
программировании, тогда вам будет легче это сделать. Если опыта нет, тогда
нужно будет найти в сети пример кода основных популярных языков и
сравнить код на схожесть с вашим исходником. Часто языки отличаются
наличием и использованием тех или иных операторов, которые бросаются в
глаза. Или в некоторых языках есть специфичность использования скобок пробелов, табуляции, знаков препинания и т. д. На это нужно обратить
внимание и как и сравнить ваш исходник с найденным примером. - Еще одна хитрость – это использовать онлайн-компиляторы кодов. Иногда,
чтобы определить язык программирования по коду — достаточно его
пропустить через соответствующий компилятор. Так как популярных языков не
так много, по многим из них есть онлайн-компиляторы. Поэтому можно ваш
исходник пропускать поочередно по каждому из них, пока не «сработает». Как
только код «сработает», можно будет предположить, что ваш код написан на
том коде, чей компилятор вы используете. - Можно воспользоваться небольшой программой PeiD. Нужно будет найти ее в
интернете, скачать актуальную версию и установить к себе на компьютер. Он а
может помочь вам в вопросе, как узнать на каком языке написана программа и
определить язык программирования по исходному коду. Это не ее прямое
предназначение, но она может помочь, компилятор, а соответственно и язык
программирования.
Заключение
Утилита PeiD не всегда дает 100%-ый результат, но во всех случаях ограничивает
список возможных языков. Если обобщить все написанное выше, то получается
чтобы определить язык программирования с большой точностью,
необходимо иметь хотя бы небольшие познания в программировании. Потому что
«докручивать» результат придется самостоятельно анализируя полученные данные.
Потому что только по синтаксису и конструкции кода, можно определить язык
программирования. Соответственно нужно как минимум понимать что такое
синтаксис, оператор, конструкция и другие базовые вещи.
Поэтому полным чайникам в программировании будет сложно узнать на каком языке написана программа, однако, если немного «прокачаться», то все возможно.
Автоопределение языка программирования по коду?
Добрый день! Существуют ли готовые решения (опенсорс) для автоматического определения языка программирования по заданному исходнику? Насколько сложно создать подобное самому?
Достаточно ли детектировать несколько ключевых слов или нужно более глубоко парсить код?
Спасибо.
Оценить 1 комментарий
Нескольких ключевых слов не хватит — для лиспа нужны скобочки, для питона — отступы и тд.
Если список языков задан, а код валидный, скормив его по очереди компиляторам/интерпретаторам можно узнать, какие языки считают этот код своим. Если код невалидный — всё плохо, например, склеив кусок питона и кусок лиспа, я получу код, который куда отнести? Правильно, в мусор.
Поочередно скармливать компиляторам/интерпретаторам нужно, если вам необходимо 100% знать на каком языке написан код. Для обычных ситуаций достаточно его разбирать анализом текста.
egorsmkv:
Ваше замечание сложно оспорить — ведь вы же не поясняете, что есть «обычная ситуация» и что есть «анализ текста».
Придётся согласиться )))
bobrovskyserg: в этом случае — узнать язык программирования файла. Поднимать сотню компиляторов/интерпретаторов не очень выгодня, например, для какого-нибудь git-viewer’a, который подсвечивает код по узнанному языку программирования.
egorsmkv:
Автор задал вопрос, как задал. Для гита ситуация отличается — у файлов правильные расширения, и отличить лисп от питона можно так. А если какой извращенец шифрует расширения — он сам себе буратино.