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

    @alexanius
    В двух словах это набор базовых принципов (мат. модели, например), на которой работает язык программирования. Сейчас наиболее широко используются три парадигмы: императивная, функциональная и логическая.

    Императивная основана на мат. модели машин Тьюринга. Особенность данной парадигмы в том, что программист чётко, шаг за шагом описывает изменения состояния программы (алгоритм), который компьютер в точности выполняет. Внутри данной парадигмы широко используются процедурный стиль (язык C) и объектно-ориентированный стиль (язык Smalltalk как яркий представитель).

    Функциональная парадигма основана на мат. модели лямбда-исчисления Чёртча. В ней программы представляют из себя вычисление функций именно в их математическом понятии. Здесь (в идеале) нет глобального состояния программы и от него ничего не должно зависеть. Функции не должны иметь побочных эффектов (pure), а данные стараются делать неизменяемыми (immutable). Наиболее яркий представитель - Haskell.

    Логическое программирование основано на мат. модели логики предикатов первого порядка. В рамках этой парадигмы вы не описываете компьютеру алгоритм решения задачи, а задаёте набор фактов, описываете правила вывода, и входные данные, после чего на основе этой информации компьютер выдаёт ответ. Алгоритм решения... нафиг не нужен. Шутка. Как вариант строится дерево решений, в котором ищется ответ подходящий под набор фактов и заданные условия. Яркий представитель - язык Prolog.

    А вообще по теме парадигм есть неплохая глава в книге Сошникова Д.В. "Парадигма логического программирования"
    Ответ написан
    Комментировать
  • Существует ли пример программы на С++ с полным набором особенностей этого языка?

    @alexanius
    Я не уверен, что именно Вам нужно, но посмотрите эммм.... ну, например Qt. Вроде более или менее всё там есть.

    Только может Вы поясните зачем Вам это нужно и найдётся решение получше?
    Ответ написан
  • Что нужно для создания нового языка программирования, какие средства и какие языки программирование нужны будут участвовать при создания нового языка?

    @alexanius
    Зависит от того, какой части Вы хотите уделить особое внимание. Если просто создать свой язык с необычным синтаксисом, то напишите фронтэнд к llvm (или gcc, или jvm, или parrot, или что Вам больше нравится). Если хотите потренировать кодогенерацию - соответственно бекенд к llvm или что Вы там выбрали. Если хотите полностью свой коиплятор - придётся ещё и свой оптимизатор и кодогенератор делать. Но если Вам это для обучения, то попробуйте просто поучаствовать в разработке llvm/gcc. Если совсем делать нечего - почитайте как они работают и попробуйте сделать что-то в таком роде.
    Ответ написан
    Комментировать
  • Ubuntu 12.04. Учусь программированию. На чем писать программы в этой системе?

    @alexanius
    Какой встроенный компилятор в какой терминал? Компилятор - отдельная программа, которая никуда не встраивается. От терминала она никак не зависит.

    Для новичка лучше использовать текстовый редактор. Тем более что текстовый редактор без возможностей IDE ещё поискать надо. Используйте vim. Будет непривычно, но потом без него жить не сможете. Лично я использую QtCreator.

    Про компилятор. Есть основной компилятор - gcc. Не знаю установлен ли он там по умолчанию, но можете использовать его. Можете также поставить clang - пока что это не сыграет никакой роли.
    Ответ написан
    4 комментария
  • Что сейчас важнее в языках программирования, скорость работы или удобство использования?

    @alexanius
    Я несколько раз перечитал вопрос, но так и не понял его. Скорость работы чего именно Вас интересует? Железки? Кода? Программиста? Удобство языка - тоже понятие очень субъективное.

    В общем случае ответ простой: как и везде - зависит от конкретной задачи.
    Ответ написан
    Комментировать