мой код выглядит так просто и работает
class Player{
var avplayer : AVPlayer?;
function play(){
self.avplayer = AVPlayer(url: url)
self.avplayer?.volume = 1.0
self.avplayer?.play()
}
}
Bjarne Stroustrup упомянул в Дизайне и Эволюции C++, что первый компилятор C++ был записан в C++.
Я только что заметил, что это - также вопрос в его FAQ:
Первый компилятор C++ (Cfront) был записан в C++. Для создания этого я сначала использовал C для записи "C с Классами"-to-C препроцессор. "C с Классами" был диалект C, который стал непосредственным предком к C++. Тот препроцессор, переведенный "C с Классами" конструкции (такие как классы и конструкторы) в C. Это был традиционный препроцессор, который не понял весь язык, оставил большую часть проверки типа компилятор C, чтобы сделать и перевел отдельные конструкции без полного ведома. Я затем записал первую версию Cfront в "C с Классами".
Схема Ура Kragen Sitaker является прекрасным примером маленького нетривиального компилятора, записанного сам по себе. Та страница связывается с несколькими более хорошими источниками в той вене.
Старый компилятор C/C++ Watcom был создан с помощью себя.
Я дал ответу Smalltalk-80 рост. Лучший, самый изящный пример я могу думать. Вопрос также напоминает мне о немного связанной проблеме, которая раньше была популярна: запишите программу что выводы саму. Не тот же уровень начальной загрузки, но забавного небольшого программирования озадачивает для Вашего развлечения. Возможно, не возможный на всех языках?
Естественно команда Jetbrains использует свою собственную идею IDE IntelliJ разработать этот IDE.
Я предполагаю, что это верно для большинства поставщиков IDE.
Не совсем, что Вы просите, но вся среда разработки для Оборота http://www.runrev.com создается с помощью самого Оборота и источника (за исключением мелких деталей, которые осуществляют лицензию) полностью выставляется в исходной форме. Таким образом, если Вам не нравится способ, которым реализована dev среда, можно изменить его. Найдите ошибку, зафиксируйте ее. Можно также легко создать дополнительные средства разработки и интегрировать их.
Насколько я знаю, создавая EMACS из источника, весь код ELISP загружается. Я нашел это довольно примечательным.
AFAIK делает саму сборку OpenJDK сначала с установленным Java и впоследствии с собой.
Я создаю основанный на IDE генератор кода, и я использую его для создания себя. Если факт, как Stroustrup сделал, я сначала создаю действительную модель генератора и использую препроцессор для создания заключительного кода C++ для компиляции. После того как у меня есть хорошая рабочая версия IDE, я начну использовать его для создания дальнейших версий из себя.
Это похоже на предоставление нового размера к значению "рекурсивного программирования"!
Я был поражен с JSLint
Короче говоря это было описано как JavaScript "компилятор" с помощью JavaScript.
Maven2 создается с помощью Maven2. Хорошо, это не создало (т.е. записало), использование себя, поскольку это - инструмент для создания (т.е. компиляция) проекта, но это использует свой собственный код для компиляции...
Это довольно типично, чтобы записать компилятор языков на его собственном языке. Это называют, саморазмещая или загружаясь.
Eclipse IDE обычно создается и разработал использование Eclipse IDE.
Oracle Application Express является средством разработки веб-приложения, которое создается сам по себе.
Я предположил бы, что в значительной степени любой инструмент, это - часть типичного процесса разработки, был бы вовлечен в свою собственную разработку до любой возможной степени. Это включает:
Если Вы находитесь на тимбилдинге один из этих инструментов, и Вы не разрабатываете его для определенной ниши, которая не относится к Вашей команде, я не знаю, почему Вы не использовали бы его для создания себя. Наличие разработчиков быть пользователями продукта является одним из лучших способов найти возможные улучшения.
Для AmigaOS было третье лицо Основной интерпретатор (не помните имя), для которого Вы могли позже купить компилятор. Компилятор был поставлен как источник, таким образом, необходимо было использовать интерпретатор для выполнения компилятора для компиляции себя...
Процитировать Kent Beck:
... это может немного походить на проводящую операцию головного мозга на себе.
tcc является другой компилятор C самохостинга для x86 и ARM. Его требование известности является, ну, в общем, крошечным (100k или так для препроцессора, компилятора, ассемблера и компоновщика).
ghc, компилятор Haskell, главным образом записан в Haskell.
Мы используем для разработки использования RealBasic. IDE записан сам по себе, или таким образом, я был выводом для веры.
Компилятор Java Sun долго писался в Java. Однако недавняя работа пишет JIT-компилятор в Java также. Это - компонент JVM, который преобразовывает байт-код Java в собственные инструкции по процессору.
Писк является реализацией Smalltalk-80, записанной сам по себе.
даже его виртуальная машина записана полностью в Smalltalk, помогающем отладить, проанализировать, и измениться.
Большому количеству людей нравится смотреть на то, как Lisp может быть реализован в Lisp.
Вот другой пример: компилятор Mono C# сам размещающий - т.е. он пишется в C# и используется для компиляции себя.
Собака fooding обращается к более общей практике компании с помощью ее собственного продукта внутренне, особенно во время ее разработки.
Когда gcc (компилятор C Гну http://gcc.gnu.org/) не был доступен широко, необходимо было скомпилировать его из источника, компилируя stage1 компилятор, затем скомпилировать stage2 с stage1, пока у Вас нет своего заключительного компилятора. Я предполагаю, что это должно быть то же сегодня.
Кроме того, существует pypy проект, который обеспечивает интерпретатор Python, записанный в Python.
В общем разговор, компиляторы C обычно пишутся в C... *, отклоняют ядра, компилируются на *, отклоняют, и т.д.
Это вне темы, но строго говоря, это - пример инструмента, который создает себя.
Каменная засыпка - 3-я машина разработки прототипа с открытым исходным кодом, которая недавно родила к "ее первой полной рабочей реплицированной копии".
Я люблю этот вид материала.
Интересно, сами компиляторы VB.NET & C# записаны в неуправляемом C++ (ведущий к Футболке команды C++: "Мой компилятор, скомпилированный Ваш"). Команда C# надеется иметь полностью managed-C#, разместил компилятор C# для VS2010.
Visual Studio и Сервер Основы Команды создают себя. Это назвало dogfooding, термин, который, не происходя в Microsoft, это, конечно, любит