Задать вопрос
Ответы пользователя по тегу Языки программирования
  • Какой ЯП лучше использовать для моей идеи?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Тот, который знаете. Если знаете джаву - используйте джаву, если плюсы - то плюсы. Если не знаете - то выбирайте тот, который больше нравится, интереснее или хочется изучить.
    В целом же, если из требований "только под винду", то отличным решением будет C# и Net WPF/MAUI. Если же приоритет именно на минимизацию потребления ресурсов - то Qt с плюсами.
    Ответ написан
    Комментировать
  • Какой язык программирования выбрать для разработки астропроцессора?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    В принципе любой. Если ближе к образцу - то он на JS. Для веб полно графических либ и движков.
    Ответ написан
    3 комментария
  • Компилируемый ЯП в стилистике JS есть?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    C#. А чтоб в 10кб скомпилить - тут только что-то низкоуровневое с оптимизацией бинарника надо. При современных терабайтах на дисках - требование бессмысленное. Разве что для МК, IoT и прочей встройки - а там обычно всё те же си и плюсы.
    Ответ написан
    1 комментарий
  • Какие есть книги/руководства по разработке "простого языка программирования" для новичка?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Рекомендую начать с Форта: минимальный интерпретатор пишется за один-два вечера за чашкой чая. Форт очень простой, гибкий и очень мощный. Он позволяет реализовывать достаточно простым способом проблемно-ориентированные ЯП (DSL). У него крайне простой синтаксис - это просто слова, отделенные разделителем (пробелом). И всё! Проще не бывает. Для передачи аргументов используется стек. Математика реализуется обратной польской записью: число, число, оператор. Типа 1 2 +. Если смотреть с классической позиции, то Форт - это интерпретируемый И компилируемый процедурный ЯП высокого И низкого уровня. Почему одновременно и высокого и низкого? Потому что существуют Форт-процессоры в кремнии, для которых Форт - ассемблер (т.е. все слова сразу интерпретируются/компилируются в машинные коды без дополнительной прослойки). А ассемблер - это ЯП низкого уровня. Процедурный - потому что слово может как забрать любое число элементов со стека, так и оставить на стеке любое их число (а не только один аргумент как в функциях). Гибкость же языка реализуется открытостью его движка - можно на лету менять правила интерпретации, компиляции и даже в рантайме все это переписывать, перекомпилировать и прочее. Например, знаменитое сишное определение #define TRUE FALSE заиграет новыми красками, ибо его можно провернуть в рантайме не особо напрягаясь. А еще можно управлять стеком возвратов (это список адресов, куда продолжается поток управления после завершения процедуры) - GOTO в сравнении с этим в ужасе трясется под лавкой. Самое известное приложение для Windows, в котором раскрыты все возможности форта - это nnCron: один из мощнейших автоматизаторов для Windows.
    В качестве дипломной работы реализация Форта подойдет великолепно и чего-то лучше вы вряд-ли найдёте (проверено лично, если что).
    Литература


    Ссылки на англоязычные ресурсы из мана ннкрона:

    И наше русское Форт-сообщество находится вот тут: fforum.winglion.ru
    Ответ написан
    2 комментария
  • Как создать язык программирования?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как создать свой язык программирования?

    Точно так же, как и любую другую программу: сначала спроектировать, а потом реализовать.

    Без другого языка программирования! Полностью с нуля.

    В самом низу находится машинный код. Выглядит примерно вот так:
    08 04 83 fa 08 04 83 fb 08 04 83 fd 08 04 84 00
    У каждого процессора есть свой набор инструкций, которые кодируются машинным кодом. Открываем справочник и пишем нужный код для нужной ОС/железа. Ничего сложного, правда же? =)

    Ведь как-то создали первый ЯП.

    Достаточно почитать историю появления первых ЭВМ. Они представляли из себя набор переключателей отдельных битов, которые позже эволюционировали в перфокарты, которые в свою очередь представляли из себя прообраз современных исполняемых файлов. С увеличением количества доступных команд, усложнением техники и появлением накопителей программы так же становились все сложнее и сложнее: поэтому решили упростить запись и придумали первый ассемблер. Дальнейшее развитие привело к появлению первого ЯП высокого уровня и далее более высокие уровни абстракции, используя которые сегодня пишутся все программы.

    Так что в вашем случае вам надо пройти весь этот путь самостоятельно. Примерно так:
    1. На машинном коде реализовать минимальный ассемблер
    2. Используя свой минимальный ассемблер реализовать простейший компилятор этого ассемблера
    3. Расширить компилятор ассемблера до стандартного набора инструкций
    4. На ассемблере реализовать транслятор и компилятор ЯП высокого уровня
    5. Реализовать необходимый набор инструкций для написания компилятора этого же ЯП
    6. Написать этот самый компилятор своего ЯП на нём же и далее уже скомпилировать первую самостоятельную версию своего ЯП без использования других ЯП
    Ответ написан
    3 комментария
  • Как объединять несколько языков одном проекте?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Через API. В рамках одной системы - используя системные API (динамические библиотеки, IPC, socket, etc.). Для веба - это традиционно HTTP и WebSocket. Для сети - обычные сокеты с использованием бинарного протокола, например веб-сокеты или что угодно.
    Ответ написан
    Комментировать
  • Важен ли для программиста язык?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, все именно так. Программирование — это лишь часть процесса разработки ПО, а не вся. В больших проектах непосредственно программирование может занимать 20-25% всего объема работ. ЯП — лишь инструмент для абстрактного представления каких-либо знаний, алгоритмов, данных и прочее. Частью процесса разработки ПО также являются: написание ТЗ, проектирование архитектуры и подсистем/модулей, выбор жизненного цикла ПО, разработка пользовательских и внешних/внутренних интерфейсов, разработка тестов, интеграция с внешними системами/API, управление командой и задачами, сопровождение проекта после разработки и еще куча различных мелочей и ньюансов.
    Ответ написан
    Комментировать
  • На какой язык программирования перейти?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Тот, который интересен — надо просто брать и пробовать сделать какой-то проект. Например сейчас довольно популярны C#, JS/Node, RoR, Питон.
    Ответ написан
    Комментировать
  • Подкиньте идею языка программирования, не похожего на семейство Си и Java?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Форт/Forth.
    Ответ написан
    Комментировать
  • Можно ли на python написать полноценный браузер?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, вполне можно за несколько лет написать с нуля нечто очень похожее на современный браузер. Питон для этого подходит очень плохо в силу своих особенностей, а в браузере важна высокая скорость работы многих сложных участков кода. Для написания браузера имеет смысл использовать компилируемые в нативнй код ЯП с развитыми оптимизаторами. Если цель изначально учебная - то еще можно присоединиться к какому-нибудь OpenSource проекту.
    Ответ написан
    Комментировать