Почему преобразовывают код на одном языке другому?

Браузерам действительно не нравится, когда Вы бездельничаете с исходными данными файла, но возможно сделать это. Я видел несколько методов, но самое простое должно абсолютно расположить вход файла над тем, что Вы хотите использовать в качестве кнопки и обнулить ее непрозрачность или почти нуль. Это означает, что, когда пользователь нажимает на изображение (или независимо от того, что Вы имеете под там) они на самом деле нажимают на невидимую кнопку обзора.

, Например:

<input type="file" id="fileInput">
<img src="...">
#fileInput{
    position: absolute;
    opacity: 0;
    -moz-opacity: 0;
    filter: alpha(opacity=0);
}
6
задан JasonMArcher 3 August 2015 в 15:59
поделиться

10 ответов

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

Например, скажем, у вас есть приложение на Python, которое использовало некоторые удобные служебные функции. Позже вы пишете приложение на C ++, и вам нужна та же функциональность.

У вас есть два варианта - либо использовать какую-либо форму моста для вызова кода Python из C ++ (что иногда может быть неуклюжим, хотя это возможно) , или перепишите подпрограмму на C ++. Инструменты перевода могут упростить второй вариант.

4
ответ дан 8 December 2019 в 04:30
поделиться

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

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

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

Например, вы бы предпочли написать и отладить несколько сотен строк сетевого кода на одном языке или использовать 5-10 строк на другом языке?

13
ответ дан 8 December 2019 в 04:30
поделиться

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

3
ответ дан 8 December 2019 в 04:30
поделиться

Одним из преимуществ является то, что он позволяет вам создавать прототипы ваших приложений на динамическом языке, а затем оптимизировать их на статически компилируемом языке. Это позволяет вам сосредоточиться на алгоритме на очень допустимом языке, таком как Python, а затем скомпилировать его в статически типизированный язык, такой как C ++, когда вас интересуют скорость и безопасность типов.

Другое преимущество подобных инструментов заключается в том, что они позволяют переводить устаревший код на более современные языки. Я использовал f2c в прошлом, чтобы преобразовать некоторые старые проекты Fortran в C, и, хотя он не был идеальным, он решал множество простых повторяющихся проблем, которые я не хотел решать сам.

3
ответ дан 8 December 2019 в 04:30
поделиться

Еще одна веская причина для преобразования кода - его обновление. Например, у нас есть приложение 10-летней давности, написанное на Delphi, и большая его часть потребуется на C # в обновлении, которое мы собираемся запустить. Вместо того, чтобы переписывать код на C #, мы просто конвертируем все приложение, вносим обновления, и у нас есть совершенно новое приложение примерно через 6 месяцев по сравнению с двумя годами, которые потребовались бы на переписывание.

2
ответ дан 8 December 2019 в 04:30
поделиться

Предполагается, что на языках высокого уровня будет проще писать. Даже компилятор C ++ - это инструмент для преобразования одного языка (C ++) в другой (объектный код)

0
ответ дан 8 December 2019 в 04:30
поделиться

Это потому, что «интерпретируемый» язык находится на более высоком уровне. Обычно это означает, что большая часть сложного или шаблонного кода, который вам придется написать, позаботится о вас, что позволит вам больше сосредоточиться на проблеме, а не на фактической работе языка или компилятора.

Другие ситуации, такие как Java или .NET компилируется в различные форматы байтового кода, которые затем либо интерпретируются виртуальной машиной, либо JIT (Just In Time) компилируются в машинный код. Это делает скомпилированный байт-код более переносимым, так что его можно запускать везде, где есть виртуальная машина или JIT-компилятор, независимо от платформы.

0
ответ дан 8 December 2019 в 04:30
поделиться

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

Вы должны понять, что особенности языка не полностью перекрываются. Так что придется перекодировать. Это работа.

Вам придется вложить много усилий, что, возможно, эквивалентно% 50-% 75 усилий по переписыванию с нуля. В конце концов, у вас будет то, что работает так же хорошо, как то, что у вас уже работало, совершенно бесплатно. А также любые новые обнаруженные вами ошибки.

0
ответ дан 8 December 2019 в 04:30
поделиться

Некоторые языки были написаны для определенной цели. Например, Erlang был написан специально для обеспечения многопоточности и устойчивости к сбоям. Разработчик CouchDB сказал, что начал свой проект на C ++, но затем переключился на Erlang, поскольку он лучше соответствовал его модели программирования.

Языки виртуальных машин, такие как .NET / C #, являются языками общего назначения и хорошо подходят для программистов, которые просто хотят чтобы сделать работу. Встроенные сети безопасности помогают защитить от общих проблем. Не нужно беспокоиться о таких вещах, как атаки переполнения буфера, поскольку такие проблемы безопасности обычно решаются виртуальной машиной.

C ++ работает быстро, но требует больше работы.

0
ответ дан 8 December 2019 в 04:30
поделиться

Одна из причин перехода с одного языка на другой (Python -> C ++) - это проблема оптимизации. Компилируя в машинный код, вы избавляетесь от любого шага интерпритации или JIT. Обычно это может происходить с Python; вы бы также избавились от любой зависимости от того, что Python установлен локально на машине.

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

И, наконец, как говорили другие, причина использования Python вместо C ++ заключается в том, что с ним должно быть легче работать;

0
ответ дан 8 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: