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

    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 проекту.
    Ответ написан
    Комментировать