şükela:  tümü | bugün
  • bir cok programlama dilinin turing complete olmasindan dolayi teoride mumkunse neden boyle bir sey yok diye sorulasi sey.

    buna ihtiyacimiz muhtemelen yok. ornegin c kodunu java'ya veya python'a tek tusla cevireyim diyen bir insan goremezsiniz, gorurseniz bana da haber verin. bastan yazan gorursunuz cunku metodlari birebir kopyalayamayacagi icin ortaya cikaracagi maksimum sey google translate'de ingilizce'den turkce'ye cevirme gibi bir sey olacaktir.

    en yakin alakali konu google translate'e gore kaynak-kaynak derleyici olan source-to-source compiler.

    ingilizce wiki yasaklari delen kopyalama:

    --- spoiler ---

    a source-to-source compiler, transcompiler or transpiler is a type of compiler that takes the source code of a program written in one programming language as its input and produces the equivalent source code in another programming language. a source-to-source compiler translates between programming languages that operate at approximately the same level of abstraction, while a traditional compiler translates from a higher level programming language to a lower level programming language. for example, a source-to-source compiler may perform a translation of a program from pascal to c. an automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations (e.g., openmp) or language constructs (e.g. fortran's forall statements).

    another purpose of source-to-source-compiling is translating legacy code to use the next version of the underlying programming language or an apı that breaks backward compatibility. ıt will perform automatic code refactoring which is useful when the programs to refactor are outside the control of the original implementer (for example, converting programs from python 2 to python 3, or converting programs from an old apı to the new apı) or when the size of the program makes it impractical or time consuming to refactor it by hand.

    transcompilers may either keep translated code as close to the source code as possible to ease development and debugging of the original source code, or may change the structure of the original code so much that the translated code does not look like the source code. there are also debugging utilities that map the transpiled source code back to the original code; for example, the javascript source map standard allows mapping of the javascript code executed by a web browser back to the original source in a transpiled-to-javascript language.

    examples of transcompiled languages include closure compiler, coccinelle, coffeescript, dart, haxe, typescript and emscripten.
    --- spoiler ---

    bonus: (bkz: google gwt)