исполняемый псевдокод?

голоса
3

Я пытаюсь определить, предшествующий уровень техники для следующей идеи:

1) пользователь вводит в некоторый код на языке под названием (insert_name_here);

2) пользователь выбирает язык назначения из списка известных выходных кандидатов (JavaScript, рубин, Perl, Python);

3) процессор переводит insert_name_here в работоспособный код на языке назначения;

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

Причина это работает, потому что есть предустановленный 1 к 1 отображение между всеми конструкциями языка от insert_name_here для всех поддерживаемых языков назначения.

( Отказ от ответственности: .. Это , очевидно , не дает «элегантный» код , который хорошо адаптирован к языку назначения Он просто делает элементарный перевод , который является исполняемой Цель состоит в том, чтобы позволить разработчикам получить быструю и грязную реализацию алгоритмов в несколько различных языков для тех случаев , когда они не чувствуют себя как заново изобретать колесо, но которые необходимы для какой - либо причины для работы с конкретным языком по конкретному проекту.)

Значит ли это уже есть?

Задан 03/12/2008 в 22:52
источник пользователем
На других языках...                            


5 ответов

голоса
4

.NET CLR разработан таким образом, что C ++. Net, C # .Net, и VB.Net все компилировать к тому же машинный язык, и вы можете «декомпилировать», что CLI обратно в любой из этих языков.

Так что да, я бы сказал, что уже существует, хотя и не так, как вы описываете.

Ответил 03/12/2008 в 22:57
источник пользователем

голоса
2

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

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

Ответил 03/12/2008 в 23:05
источник пользователем

голоса
2

Это кажется немного странным. Если вы используете термин «известного уровня техники» в самой общей форме, вы обсуждали потенциально патентоспособный идею. Если это так, то у вас есть:

1 / Опубликовано идею, начиная отсчет времени подачи патентных заявок - Я предполагаю, что, возможно, неправильно, что Вы проживаете в США в других юрисдикциях могут быть другие правила.

2 / Рассказал всю планету вашу идею, что означает, что в значительной степени бесполезно пытаться патентный его, если вы не действовать очень быстро.

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

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

Один проблеск надежды будет способностью вашей идеи для создания одного из нескольких языков вывода (который p2c и f2c не делает), но я думаю, что даже то, что будет охвачено подобным кросс-компиляторов (например, GCC), превращающей источник в одном из множества различных объектных языков.

IBM есть продукт под названием Visual Age Generator, в котором вы код в одном (собственный) язык и он преобразуется в COBOL / C / Java / другие для работы на различных целевых платформах с ПК на большой Honkin' System г мэйнфреймы, так что ваш первый проблема (думать о патентовании идеи, что IBM, крупнейший patenter в мире, уже использует).

Ответил 04/12/2008 в 00:07
источник пользователем

голоса
2

Тонны их. p2c, f2c, и оригинальное выполнение s из C ++ и Objective C ударить меня немедленно. Кроме того, это своего рода трудно отличить то, что вы описываете от любого компилятора, особенно для нас, старичков, чьи компиляторы генерироваться ASM код для промежуточного represetation в любом случае.

Ответил 04/12/2008 в 00:54
источник пользователем

голоса
3

Да, это программа , которая преобразует программу из одного представления в другое действительно существует. Это называется «компилятор».

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

Тем не менее, не нужно быть немым 1: 1 отображение.

Например: Microsoft Вольта компилятором, который компилирует CIL байт-код JavaScript исходный код имеет проблемы: .NET имеет темы, JavaScript не делает. Но вы можете реализовать темы с продолжениями. Ну, JavaScript не имеет продолжений либо, но вы можете реализовать продолжения с исключениями. Таким образом, Вольта превращает КСС в КП, а затем реализует КП с исключениями. (Новые версии JavaScript имеют полусопрограммы в виде генераторов, а те, также могут быть использованы, но Вольта предназначен для работы в широком диапазоне версий JavaScript, в том числе, очевидно JScript в Internet Explorer).

Ответил 04/12/2008 в 09:22
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more