В чем разница между языком и структурой? - PullRequest
13 голосов
/ 21 сентября 2010

Может ли кто-нибудь дать мне четкое и краткое определение разницы между языком программирования и фреймворком?Я просмотрел сеть и не смог найти адекватного определения.

Для дополнительного кредита, возможно ли, чтобы язык и структура стали настолько неразрывно связанными, что разницы нет, или есть такая ясность?линия между ними, что это невозможно?

Ответы [ 6 ]

25 голосов
/ 21 сентября 2010

Язык - это синтаксис, грамматика, семантика (и, возможно, базовая библиотека), которую должны поддерживать разработчики.Фреймворк - это связный набор библиотечного кода, который вместе упрощает программирование на любом языке.

3 голосов
/ 02 марта 2014

Каркас приложения - это организационная структура кода любого приложения, включая варианты условных обозначений в файлах / папках, классах / функциях и т. Д.

Приложение Каркасный продукт - это любой инструмент, который помогает создать каркас для приложения.

шаблон проектирования приложения - это любой концептуальный подход к организации кода на уровне приложения.

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

Библиотека * - это любое расширение вфункциональность для встроенной скомпилированной функциональности языка.

A стандартная библиотека - это библиотека, упакованная с самим языковым продуктом.

внешняя библиотека является библиотекой за пределами самого языкового продукта и вызывается удаленно или устанавливается локально.

A code-generator - это любой тool, который динамически генерирует постоянный код времени выполнения на основе ввода разработчика.


2 голосов
/ 21 сентября 2010

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

Lisp - единственный язык, о котором я могу думать сейчас, который может стереть это различие:

"Имя LISP происходит от" LISt Processing ". Связанные списки являются одной из основных структур данных языков Lisp.и исходный код Lisp сам состоит из списков. В результате программы на Лиспе могут манипулировать исходным кодом как структурой данных, создавая системы макросов, которые позволяют программистам создавать новый синтаксис или даже новые доменные языки, встроенные в Лисп.«.

http://en.wikipedia.org/wiki/Lisp_(programming_language)

1 голос
/ 23 февраля 2012

На мой взгляд, язык программирования выглядит как куча вещей (синтаксис, грамматика, семантика и т. Д.), Которые люди уже объединяют в одну более удобную, более полезную, более простую в использовании и более приятную - среду иЯ люблю иметь рамки, прежде чем начать делать программу.

Я знаю некоторые языки программирования, такие как C, PHP, ASP, Python, Java, и некоторые фреймворки, такие как Yii, Zend, Pygame, Struts.Все, что я вижу, это то, что может быть много фреймворков, построенных на языке программирования, но фреймворк построен только на языке программирования.

1 голос
/ 23 февраля 2012

Я надеюсь, что смогу объяснить на примере.

Dot net - это фреймворк, который состоит из больших библиотек и поддерживает множество языки программирования .. C # это язык программирования, с помощью которого вы можете дать инструкция к машине в основном компьютер .. Теперь, если ваш исходный код находится в C # Вы можете использовать библиотеки Dot Net Framework и исходный код, который написан на других языки ..

0 голосов
/ 21 сентября 2010

Язык программирования - это определенный, стандартизированный метод связи между программистом и компьютером (в современных языках, технически это между программистом и компилятором, который «интерпретирует» ваш код в более простые инструкции, с которыми может работать компьютер).Это чистая абстракция, которая определяет ее структуру, синтаксис и семантику;Реализации языка, как правило, считаются частью среды, в которой разрабатывается программист, и включают в себя компилятор и любую реализацию виртуальной машины.

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

...