Какие инструменты построены сами по себе?

Мне интересно, какие инструменты используются для сборки следующей версии.

Например, Delphi уже давно заявляет, что " Delphi написан в Delphi".

Я предполагаю, что Visual Studio написана с использованием Visual Studio.

Какие еще примеры инструментов, написанных в себе?

Ответ 1

Bjarne Stroustrup упомянул в The Design and Evolution of С++, что первый С++-компилятор был написан на С++.

Я только что заметил, что это также вопрос в его FAQ:

Первый компилятор С++ (Cfront) был написанный на С++. Чтобы построить это, я сначала использовал C, чтобы написать "C с Классы" -to-C препроцессор. "C с Классы" был диалектом С, который стал непосредственного предка на С++. Что препроцессор переводил "C с Классы" (например, классы и конструкторы) в C. Это был традиционный препроцессор, который не понять весь язык, оставить большая часть проверки типа для C компилятор, чтобы сделать и перевести индивидуальные конструкции без полного знание. Затем я написал первый версии Cfront в "C с классами".

Ответ 2

Интересно, что сами компиляторы VB.NET и С# написаны на неуправляемом С++ (приводящем к команде С++ team T-Shirt: "Мой компилятор скомпилировал ваш" ). Команда С# надеется иметь полностью управляемый С# компилятор С# для VS2010.

Ответ 3

Это не по теме, но, строго говоря, это пример инструмента, который строится сам.

reprap - прототипирующая машина с открытым исходным кодом, которая недавно дала "рождение" своей "первой полной рабочей копии" ".

Мне нравится этот материал.

Ответ 4

В общем случае компиляторы C обычно записываются в C... * nix ядра скомпилированы на * nix и т.д.

Ответ 5

Кроме того, существует pypy проект, который предоставляет интерпретатор Python, написанный на Python.

Ответ 6

Когда gcc (компилятор Gnu C http://gcc.gnu.org/) был недоступен широко, вам пришлось скомпилировать его из источника, компилируя компилятор stage1, затем скомпилируйте stage2 с stage1, пока у вас не будет свой окончательный компилятор. Я предполагаю, что он должен быть таким же и сегодня.

Ответ 7

Вот еще один пример: компилятор Mono С# самостоятельный хостинг - то есть он написан на С# и используется для компиляции.

Пища для собак относится к более общей практике компании, использующей собственный продукт внутри страны, особенно во время ее разработки.

Ответ 9

Squeak - это реализация Smalltalk-80, написанная сама по себе.

даже его виртуальная машина полностью написана в Smalltalk, что позволяет легко отлаживать, анализировать и изменять.

Ответ 10

Sun Java-компилятор уже давно написан на Java. Тем не менее, недавняя работа пишет JIT-компилятор в Java. Это компонент JVM, который преобразует код байта Java в собственные инструкции процессора.

Ответ 11

Мы используем для разработки с использованием RealBasic. IDE написана сама по себе, или так мне повезло.

Ответ 12

ghc, компилятор Haskell, в основном написан в Haskell.

Ответ 13

tcc - еще один самодостаточный компилятор C для x86 и ARM. Его претензия на славу крошечная (около 100 тыс. Для препроцессора, компилятора, ассемблера и компоновщика).

Ответ 14

Я бы предположил, что практически любой инструмент, который часть типичного процесса разработки будет вовлечен в его собственное развитие, в какой бы то ни было мере. Это включает в себя:

  • определенные языки программирования, особенно скомпилированные
  • Иды
  • текстовые редакторы
  • системы управления версиями
  • Отслеживание ошибок
  • системы сборки

Если вы работаете в команде, создающей один из этих инструментов, и вы не разрабатываете его для конкретной ниши, которая не относится к вашей команде, я не знаю, почему вы не использовали ее для сборки сам. Наличие разработчиков продукта является одним из лучших способов найти возможные улучшения.

Ответ 15

Для AmigaOS был сторонний интерпретатор Basic (не помните имя), для которого вы могли впоследствии купить компилятор. Компилятор был доставлен как источник, поэтому вам пришлось использовать интерпретатор для компиляции компилятора...

Процитировать Кента Бек:

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

Ответ 16

Visual Studio и Team Foundation Server сами создают. Он называется dogfooding, термин, который, если не происходит в Microsoft, конечно, любит

Ответ 17

Oracle Application Express - это инструмент разработки веб-приложений, который построен сам по себе.

Ответ 18

Eclipse IDE обычно построена и разработана с использованием Eclipse IDE.

Ответ 19

Довольно типично иметь компилятор языков, написанный на его родном языке. Это называется self-hosting или bootstrapping.

Ответ 20

Maven2 построен с использованием Maven2. Хорошо, он не построен (т.е. Написан) с использованием самого себя, поскольку это инструмент для создания (то есть компиляции) проекта, но он использует свой собственный код для компиляции...

Ответ 21

Я был поражен JSLint

Короче говоря, он был описан как "компилятор" Javascript с использованием javascript.

Ответ 22

Я создаю генератор кода на основе IDE, и я использую его для сборки. Если факт, как и сделал Страуструп, я сначала создаю действительную модель генератора и использую предварительный процессор для создания окончательного кода на С++ для компиляции. Как только у меня будет хорошая рабочая версия IDE, я начну использовать ее для создания других версий.

Это как дать новое измерение значению "рекурсивного программирования"!

Ответ 23

AFAIK делает OpenJDK сначала создавать себя с установленной java, а потом и с самим собой.

Ответ 24

Естественно, команда Jetbrains использует свою собственную IDE IntelliJ IDEA для разработки этой среды разработки.

Я предполагаю, что это справедливо для большинства поставщиков IDE.

Ответ 25

Насколько я знаю, при создании EMACS из исходного кода весь код ELISP загружается. Я нашел это довольно примечательным.

Ответ 26

Не совсем то, о чем вы просите, но вся среда разработки для Revolution http://www.runrev.com построена с использованием самой Революции, а источник (за исключением небольших частей, обеспечивающих исполнение лицензии) полностью раскрывается в исходной форме. Поэтому, если вам не нравится, как среда разработки реализована, вы можете ее изменить. Найдите ошибку, исправьте ее. Вы также можете легко создавать дополнительные инструменты для разработки и интегрировать их.

Ответ 27

Я дал Smalltalk-80 ответ всплеск. Самый лучший, самый элегантный пример, о котором я могу думать. Этот вопрос также напоминает мне немного связанную проблему, которая была популярной: напишите программу, которая выводит себя. Не тот же уровень загрузки, но интересная небольшая загадка программирования для вашего удовольствия. Возможно, это невозможно на всех языках?

Ответ 28

Ада и Форт

Ответ 29

Старый компилятор Watcom C/С++ был построен с использованием самого себя.

Ответ 30

Kragen Sitaker Ur-Scheme - прекрасный пример небольшого нетривиального компилятора, написанного сам по себе. Эта страница ссылается на несколько более хороших источников в этом ключе.