Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Представление программ / 6 сообщений из 6, страница 1 из 1
14.11.2019, 17:03
    #39889203
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление программ
Хочу сделать в программе отображение примеров кода в зависимости от выбранного языка.
Например пользователь выбирает C#, Java, Go, C++ и примеры отображаются на выбранном языке.
Вопрос как хранить представление программ? Какой-то псевдокод, из которого генерится представление на выбранном языке?
Типа:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
 Функция Add Возврат Int32
(
  Переменная int32 А;
  Переменная int32 B;
)
{
  Возврат  (А сложить B)
}



и шарповое представление у него такое

Код: c#
1.
2.
3.
4.
    static int Add(int a, int b)
        {
            return a + b;
        }



Есть уже кем-то написанный велосипед который реализует такое?
...
Рейтинг: 0 / 0
14.11.2019, 19:37
    #39889280
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление программ
Eolt,

например, https://www.alglib.net/
за сходную цену наверное продадут движок
...
Рейтинг: 0 / 0
14.11.2019, 22:12
    #39889301
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление программ
Сложная это задачка. Кажется есть такой термин. Кросскомпилляция.
Например фреймворк Java/GWT умеет собирать код под JavaScript. Разумеется с ограничениями.

По поводу универсализма. Скорее всего не взлетит для некоторых специфичных кейсов.
Например язык который поддерживает yield return скорее всего нельзя будет пересобрать
под Java. Т.к. последний не поддерживает уступчивый возврат значения. Или например
как поддержать обработку исключений в языке Go, в котом их нету.

Можно зайти с другой стороны. Собрать код типа JVM/CLR/LLVM на любом из языков которые
доступны. И заказать реверс инжинеринг из этого низкоуровневого кода обратно в целевой
языке. Как вариант мы получим код но с сильной потерей смысла. И какие-то стандартные
синтаксические конструкции могут быть разрушены. Например switch может исчезнуть
и превратится в if-else.

Кроме того есть языки-прадигмы которые в принципе никогда не собираются в другие
формы. Например Lisp, или Prolog. Как их переносить - вообще вопрос непонятный.

Поэтому наверное перенос программ можно гарантировать для очень ограниченного
под-множества языков.
...
Рейтинг: 0 / 0
15.11.2019, 09:53
    #39889391
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление программ
Eolt,

ИМХО, ЯП настолько разные, что автоматизировать нереально. Скорее нужно честно хранить куски кода на разных ЯП. Начните со стандарта - "Hello World!".
...
Рейтинг: 0 / 0
15.11.2019, 11:23
    #39889440
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление программ
Или псевдо-язык.

Типичный сценарий. Пользователь бухгалтерии пишет запрос на псевдо-языке типа.

Код: sql
1.
ВЫБРАТЬ ВСЕ ИЗ "СкладОстатки" ГДЕ СУММ>100.00 СОРТИРОВАТЬ ПО код



А двузвенка или трезвенка просто транслирует это в цепочку вызовов внешних сервисов и баз данных.
...
Рейтинг: 0 / 0
15.11.2019, 12:30
    #39889499
Gennadiy Usov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Представление программ
Давным давно были попытки:
Обозначение: ГОСТ 27975-88
Название рус.: Язык программирования АЛГОЛ 68 расширенный
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Представление программ / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]