powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Представление программ
6 сообщений из 6, страница 1 из 1
Представление программ
    #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
Представление программ
    #39889280
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eolt,

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

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

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

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

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

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

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

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



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


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