Нет, вы не можете написать компилятор для нескольких языков. Например, что должна делать эта программа?
foo = print "Hello, World!"
В Haskell она компилируется, но ничего не делает, тогда как в Python 2 она печатает выходные данные. Компилятор не может знать, какой язык выбрать, так как он действителен на обоих языках.
Однако вы можете написать программу, которая делает одно и то же на нескольких языках. Это называется полиглот . Вот наша вышеуказанная программа, модифицированная как полиглот на Haskell и Python 2:
main = print "Hello, World!"
Что касается написания кода, который выглядит «странно», как код в вашем примере в Scala, он называется внутренним DSL и на самом деле не редкость.
Найденный им:
03-18 12:40:02.842: INFO/ActivityManager(68): Starting activity: Intent { action=android.intent.action.VIEW data=(URL TO A FLV FILE OF THE VIDEO) type=video/* comp={com.google.android.youtube/com.google.android.youtube.YouTubePlayer} (has extras) }
YouTube (и приложение Рынка), как только предполагается, используется со специальным ROMs, который Google выпустил для G1 и G2. Таким образом, Вы не можете выполнить их в ROM с открытым исходным кодом, как тот, используемый в Эмуляторе, к сожалению. Ну, возможно, Вы можете, но не официально поддерживаемым способом.
This will work on a device but not the emulator per Lemmy's answer.
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.youtube.com/watch?v=cxLG2wtE7TM")));