53 / 7 / 1
Регистрация: 06.10.2020
Сообщений: 221
1

Небольшой транслятор на язык C++. Подкиньте идей

17.08.2021, 11:53. Показов 1420. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сейчас начал делать транслятор, сделал его буквально за 5 минут. Закончились идеи, что добавить можно. Пока что данный транслятор может только подключать сторонние библиотеки на C++, подключать пространство имён, и поддерживает вставки из C++ и ассемблера. Короче говоря ничего не умеет. Можете подкинуть идей, что можно добавить?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    string code;
    ifstream input("example.txt");
    ofstream output("example.cpp");
    while (!input.eof())
    {
        input >> code;
        if (code == "/*cpp")
        {
            getline(input, code);
            while (code != "cpp*/")
            {
                output << code;
                getline(input, code);
            }
            output << "\n";
        }
        if (code == "/*asm")
        {
            input >> code;
            output << "__asm\n{";
            while (code != "asm*/")
            {
                output << code;
                input >> code;
            }
            output << "\n}\n";
        }
        if (code == "using")
        {
            input >> code;
            if (code == "system")
            {
                input >> code;
                output << "#include <" << code << ">";
            }
            if (code == "custom")
            {
                input >> code;
                output << "#include \"" << code << "\"";
            }
            output << "\n";
        }
        if (code == "namespace:")
        {
            input >> code;
            output << "using namespace " + code + ";\n";
        }
    }
}
Заметил один прикол: из-за того что транслятор поддерживает вставки из C++, то можно написать его на его языке (хотя это даже не правильно, ведь вставка на другом языке, но мне пофиг).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.08.2021, 11:53
Ответы с готовыми решениями:

Подкиньте идей
Есть у нас список категорий на сайте. Внутри этих категорий есть еще подкатегории. А внутри этих...

Подкиньте идей
Есть задание &quot;Разработать веб-сайт для водителей онлайн ресторана&quot; (ну типо заказываешь и тебе...

Подкиньте парочку идей
Какие формы можно сделать для бд Деканат, что бы смотрелась нормально набросайте пару вариантов плз

Подкиньте идей пожалуйста)
Решаю, решаю и толку нет. Помогите, кто знаком с таким явлением, как ДСВ

13
 Аватар для YUEN HOIFEF
251 / 184 / 47
Регистрация: 31.01.2021
Сообщений: 934
17.08.2021, 11:59 2
Кури Лексический анализатор.
0
фрилансер
 Аватар для Алексей1153
5860 / 5399 / 1106
Регистрация: 11.10.2019
Сообщений: 14,422
17.08.2021, 12:42 3
Aleksey_1024, добавь поддержку C++20 и отладчик. Для начала

в твоём шедевре ошибки:
Цитата Сообщение от Aleksey_1024 Посмотреть сообщение
using namespace std;
Цитата Сообщение от Aleksey_1024 Посмотреть сообщение
while (!input.eof())
0
53 / 7 / 1
Регистрация: 06.10.2020
Сообщений: 221
17.08.2021, 12:45  [ТС] 4
Цитата Сообщение от Алексей1153 Посмотреть сообщение
в твоём шедевре ошибки
почему ты так думаешь?
0
фрилансер
 Аватар для Алексей1153
5860 / 5399 / 1106
Регистрация: 11.10.2019
Сообщений: 14,422
17.08.2021, 12:46 5
Aleksey_1024, почему я думаю, что ошибка - это ошибка? Потому что ошибку принято называть ошибкой
0
723 / 683 / 110
Регистрация: 29.05.2015
Сообщений: 4,118
17.08.2021, 14:28 6
А что такое транслятор? Что он транслирует в С++?
1
 Аватар для Super-Hacker
342 / 114 / 37
Регистрация: 26.11.2019
Сообщений: 735
17.08.2021, 15:53 7
Цитата Сообщение от alexu_007 Посмотреть сообщение
Что он транслирует в С++?
Текст
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37446 / 20817 / 4281
Регистрация: 12.02.2012
Сообщений: 34,237
Записей в блоге: 14
17.08.2021, 17:45 8
Aleksey_1024, транслятор - это (в общем случае) средство перевода с одного языка на другой. Твой транслятор берет на вход текст на C++, возвращает другой текст на C++ Я верно понял? Покажи пример работы!
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,884
Записей в блоге: 1
17.08.2021, 19:14 9
Aleksey_1024, бери грамматики языка и кодируй.

Добавлено через 2 минуты
с какого языка, тоже нужен будет
0
 Аватар для Recrut_rf
374 / 317 / 65
Регистрация: 14.10.2014
Сообщений: 1,348
17.08.2021, 21:10 10
Цитата Сообщение от Aleksey_1024 Посмотреть сообщение
начал делать транслятор, сделал его буквально за 5 минут
Чёт как-то быстро. Да и сама идея какая-то бредовая. Зачем транслятор с С++ на С++? Не - для прокачки скиллов любая практика в плюс. Но блин. Может лучше запилить что-нибудь в духе - пишем код на джаве (например) и компилим его плюсовым компилятором через самодельный транслятор
1
53 / 7 / 1
Регистрация: 06.10.2020
Сообщений: 221
18.08.2021, 10:43  [ТС] 11
Catstail, Он не берёт на вход C++, он использует вставки C++ и ассемблера.
0
 Аватар для YUEN HOIFEF
251 / 184 / 47
Регистрация: 31.01.2021
Сообщений: 934
18.08.2021, 10:54 12
Компилятор это тоже транслятор.

Добавлено через 4 минуты
Aleksey_1024,
Скорее всего хочет сделать интерпретатор. (Который тоже транслятор).
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37446 / 20817 / 4281
Регистрация: 12.02.2012
Сообщений: 34,237
Записей в блоге: 14
18.08.2021, 11:02 13
Aleksey_1024, я не понял, что Вы сделали. Приведите исходные данные и результат.

Цитата Сообщение от Aleksey_1024 Посмотреть сообщение
он использует вставки C++ и ассемблера.
- куда вставки?

На всякий случай, прочитайте это
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
37446 / 20817 / 4281
Регистрация: 12.02.2012
Сообщений: 34,237
Записей в блоге: 14
18.08.2021, 21:31 14
Не в порядке хвастовства, а как пример: транслятор (конвертор) из Бэйска в Паскаль Здесь все понятно: на входе - программа на Бэйсике, на выходе ее "эквивалент" на Паскале.
0
18.08.2021, 21:31
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2021, 21:31
Помогаю со студенческими работами здесь

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

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

Подкиньте идей для ресурса с игровым обучением
Создаю ИС с элементами игры на js (сайт) по предмету, включающему в себя лекции и наборы тестов. ...

Подкиньте пару идей по реализации выпадающего окна
Добрый, с новым годом! Хотелось бы услышать ваши варианты по реализации вот таких вот окон.

Подкиньте идей для реализации на кружке в школе.
Доброго времени суток, уважаемые форумчане. Начну издалека: работаю учителем физики и информатики в...

Структура DXF, обработка в DELPHI. Подкиньте идей доразобраться
В общем, я разобрался в структуре файла .dxf , на фото фрагмент файла. От программы требуется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Преобразование полей (элементов управления содержимым) в обычный текст
РоΜа 23.01.2025
Возникла необходимость преобразовать поля в текст (те, что на вкладке разработчик добавляются) . Помучившись родил следующее: Sub ПоляВТекст() Преобразует все поля в текст (даты, текст,. . .
Как проверить существование директории в скрипте Bash
bt_guru 23.01.2025
При разработке скриптов Bash одной из ключевых задач является корректная работа с файловой системой, где особое место занимает проверка существования директорий. Эта операция становится критически. . .
Как работают срезы (slice) в Python
bytestream 23.01.2025
Python предоставляет разработчикам мощный и гибкий инструмент для работы с последовательностями данных - срезы (slices). Эта функциональность позволяет извлекать, модифицировать и управлять. . .
Как удалить подмодуль (submodule) в Git
bytestream 23.01.2025
При работе с крупными проектами в системе контроля версий Git разработчики часто сталкиваются с необходимостью управления зависимостями и внешними компонентами. Подмодули (submodules) представляют. . .
В чем разница между @staticmethod и @classmethod в Python. Декораторы методов
bytestream 23.01.2025
В Python декораторы методов представляют собой мощный инструмент, позволяющий модифицировать поведение функций и методов без изменения их исходного кода. Эта возможность является одной из. . .
Как преобразовать InputStream в String в Java
bytestream 23.01.2025
В мире Java-разработки работа с потоками данных является одной из ключевых операций при создании современных приложений. InputStream, как фундаментальный класс для обработки входных потоков данных,. . .
Как обновить форк (ответвление) репозитория в Git
bytestream 23.01.2025
Одним из наиболее мощных инструментов Git для организации совместной работы является механизм форкинга репозиториев, который позволяет создавать независимые копии проектов для дальнейшей разработки. . . .
Как работает async/await в C#. Асинхронное программировани­е в .NET
bytestream 23.01.2025
Введение в асинхронное программирование Асинхронное программирование представляет собой важнейшую концепцию современной разработки программного обеспечения, особенно в контексте создания. . .
КуМир: полное руководство
bytestream 23.01.2025
Введение в КуМир: история создания и назначение КуМир (Комплект Учебных МИров) представляет собой образовательную среду программирования, которая была создана для обучения основам алгоритмизации и. . .
Что такое OLAP. Где и как использовать многомерный анализ данных
bytestream 23.01.2025
Введение в OLAP-технологии В современном мире бизнес-аналитика и обработка больших массивов данных играют ключевую роль в принятии стратегических решений. Организации накапливают огромные объемы. . .
MongoDB: что это, для чего нужна и как использовать
bytestream 23.01.2025
Введение в MongoDB: современная документоориентированная СУБД В современном мире разработки программного обеспечения выбор правильной системы управления базами данных является критически важным. . .
Как использовать закрытый ключ шифрования в Git. Шифрование в Git
bytestream 23.01.2025
Установка и настройка закрытых ключей в Git предоставляет дополнительный уровень безопасности для работы с репозиториями. Для начала необходимо создать пару ключей, обычно это осуществляется с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru