Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
vad505
0 / 0 / 0
Регистрация: 26.11.2012
Сообщений: 103
#1

Написать курсовую "Транслятор из C++ в Pascal" - C++

08.02.2014, 10:31. Просмотров 1311. Ответов 17
Метки нет (Все метки)

Транслятор из с++ в паскаль!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2014, 10:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать курсовую "Транслятор из C++ в Pascal" (C++):

Написать курсовую по теме "Разработка архитектуры и компонентов системы и автоматизации автосервиса" - C++
Добрый день! Есть такая проблема, учусь в колледже, задали написать курсовую по теме "Разработка архитектуры и компонентов системы и...

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно". Я так...

Написать функцию поиска человека по полю "фамилия" в массиве структур "Note" ("Персональная информация") - C++
Вывести из структуры информацию о человеке, чья фамилия введена с клавиатуры #include <iostream> #include <locale> #include...

Написать программу которaя запрашиваeт у пользователя номер дня недели, затем выводит одно из сообщений "рабочий день", "суббота", "воскресенье" - C++
Добрый день необходимо написать несколько программ, кто может помогите. одна тема - одна задача!

Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" - C++
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
KOPOJI
08.02.2014, 10:35
  #2

Не по теме:

Цитата Сообщение от vad505 Посмотреть сообщение
Необходимо написать курсовую
Пишите, мы не против...

2
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
08.02.2014, 10:50 #3
Читайте , 1 книга по архитектуре компьютера, 2 по созданию компиляторов
P. S. 2 в виде торентта т. к. из -за обьема (15,2 мб) ее нельзя загрузить на форум
P. P. S. никто за просто так столь сложное задание делать вам не будет, либо максимально уточните требования.

Архитектура-компьютера_Таненбаум_2003-4-е-изд
Ахо,Лам,Сети,Ульман - Компиляторы. Принципы, технологии, инструменты. 2ed 2008г

 Комментарий администратора 
Правила форума пункт 5.3
Запрещено размещать любые материалы, нарушающие авторские права (без разрешения правообладателя), а также ссылки на них.
Правила форума пункт 5.9
Запрещено отсылать пользователей из тематических разделов в разделы фриланса, а также рекламировать свои услуги или просить/требовать оплату за помощь, кроме разделов для платных услуг.
1
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
08.02.2014, 11:35 #4
агерон, а чем тут Танненбаум поможет? Он же не что-то низкоуровневое пишет!
Да и вторая книга нужна скорее для честного парсинга и трансляции.
А тут по сути учебное задание можно перевести как
заменить в тексте { на begin, } на end, = на := и.т.д.
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
08.02.2014, 12:19 #5
)) ага обычными заменами, давай ты мне переведешь таким образом такой несложный код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <vector>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    vector<int> v(10);
    for(int i = 0; i < 10; i++) 
    {
        v[i] = (i+1)*(i+1);
    }
}
а потом мы попытаемся твой результат скомпилировать и весело посмеемся над ошибкам компилятора pascal

P. S. не порите ЧУШИ молодой человек и сами пожалуйста хоть не намного выучите архитектуру компьютера и устройство компиляторов, поверьте моему опыту эти 2 вещи очень сильно между собой связаны
0
HighPredator
5534 / 1848 / 345
Регистрация: 10.12.2010
Сообщений: 5,455
Записей в блоге: 2
08.02.2014, 16:43 #6

Не по теме:

Цитата Сообщение от агерон Посмотреть сообщение
не порите ЧУШИ молодой человек и сами пожалуйста хоть не намного выучите архитектуру компьютера и устройство компиляторов, поверьте моему опыту эти 2 вещи очень сильно между собой связаны
Вы чем давать такие советы, лучше на себя посмотрите. Теперь глянем на ваш пример. Ответьте на вопрос, каким образом знание устройства компилятора и т.п. поможет перевести ваш пример на паскаль, в котором в принципе нет ООП?

В принципе подход Kuzia domovenok имеет право на существование.
1
daslex
08.02.2014, 16:51
  #7

Не по теме:

тут наверняка Turbo Pascal 7.0 какой-нибудь в контексте/ там ООП есть . как бы Паскаль Паскалю рознь (сначала не было, потом появилось)

0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
08.02.2014, 19:46 #8
Цитата Сообщение от агерон Посмотреть сообщение
а потом мы попытаемся твой результат скомпилировать и весело посмеемся над ошибкам компилятора pascal
P. S. не порите ЧУШИ молодой человек и сами пожалуйста хоть не намного выучите архитектуру компьютера и устройство компиляторов, поверьте моему опыту эти 2 вещи очень сильно между собой связаны
агерон, Похоже, опыт тебя подводит.
автор хоть раз упомянул полноценный компилятор?
Не умничай, ты переусложняешь задачу! Будь проще!
0
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
08.02.2014, 19:59 #9
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Не умничай, ты переусложняешь задачу! Будь проще!
Согласен в учебном процессе задача упрощенно ставится.... Но основной функционал С++ скрыт в include-ах с этим то же не поспоришь. Но даже если про это забыть то даже такой код транслировать устанешь:
C++
1
2
3
int i;
std::cin>>i;
int y=i*2;
а если вспомнить про существование using namespace.....
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
08.02.2014, 20:18 #10
Цитата Сообщение от mustimur Посмотреть сообщение
а если вспомнить про существование using namespace.....
ну для начала, автору нужно напомнить, что транслятор из Си будет попроще, чем Си++.
Далее, надо предложить, даже для Си реализовать лишь часть ядра языка, скажем
-встроенные типы и переменные
-часть арифметических операторов.
-один из видов цикла
-один вид ветвления - if
-возможно, добавить поддержку goto
-поддержка функций
-возможно, если останутся силы подумать как реализовать массивы и строки

Не по теме:

не, массивы и строки в Си и Паскале довольно различны, тут даже указатели полегче реализовать было б


А стандартную библиотеку Си вообще урезать до нескольких функций, скажем
-gets
-puts
-atoi
-itoa
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
08.02.2014, 22:20 #11
Kuzia domovenok, то что ты поришь ЧУШЬ это и ТАК ВИДНО и твои -35 к репутации как то на это особо не влияют вот код переделанный с С на Pascal по твоему рецепту

заменить в тексте { на begin, } на end, = на := и.т.д.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <vector>
 
using namespace std;
 
int main(int argc, char* argv[])
{
int v[10]={};
    for(int i = 0; i < 10; i++) 
    {
        v[i] = (i+1)*(i+1);
    }
}
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <conio.h>
#include <vector>
 
using namespace std;
 
int main(int argc, char* argv[])
begin
int v[10]=begin end;
    for(int i = 0; i < 10; i++) 
    begin
        v[i]: = (i+1)*(i+1);
    end;
begin;
давай - ка посмотрим что на этот код скажет компилятор к примеру PascalABC
то что у меня меньше репутация это не означает что у меня меньше опыта и знаний

По правельному нужно сделать дерево граматики программы на С потом перевести его, если не ошибаюсь, в граматику LL(1), а уже потом делать перевод в граматику языка Pascal и только после этого по этому дереву граматики собирать программу на Pascal
0
Миниатюры
Написать курсовую "Транслятор из C++ в Pascal"  
KOPOJI
08.02.2014, 22:39
  #12
 Комментарий модератора 
А теперь заканчиваем переход на личности и возвращаемся к теме. Без оскорблений.
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
08.02.2014, 23:12 #13
Kuzia domovenok, написание простейших LL(1) граматик, соответсвующих парсеров и анализаторов - уровень 4-5 курса института, я не говорю чтобы он написал парсер/анализатор всего стандарта С++ пусть пишет парсер/анализатор простейшей программы, на подобии мною написаной, это не не так страшно как кажется, более того есть специальные инструменты которые по четко определенным правилам грамматики могут сгенерировать так необходимые анализаторы и парсеры, вот только ссылочку ищите в гугле
0
агерон
268 / 267 / 33
Регистрация: 12.10.2009
Сообщений: 1,060
10.02.2014, 02:15 #14
HighPredator если вы читали тему то прошу указать точно в чем я ошибаюсь? а то я вот такой весь непонятливый...
Насколько мне известно из моего образования, а я дай бог памяти учился на кафедре вычислительной техники и программирования факультета компьютерных и информационных технологий харьковского политеха, по специальности компьютерный инженер - системный аналитик, транслятор есть составная часть компилятора, мало того для коректной трансляции кода программы с любого языка строиться дерево трансляции в терминах LL(1) или LR(1) граматики, и где в данном случае я не прав? TC который создал тему написал "Написать курсовую "Транслятор из C++ в Pascal" на что я ему предоставил требуемую информацию по разработке компиляторов, которая также в себя включает информацию по разработке трансляторов
P. S. кстати в паскале ООП (обьектно орентированое программирование), что подверждает тот факт что компилятор Turbo pascal 7 дай бог памяти 1993 года выпуска, спокойно скомпилирует такую программу
Pascal
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
uses crt;
type
    PExampleBase = ^TExampleBase;
    TExampleBase = object
        constructor Create;
        procedure Test;virtual;
        destructor Done;
    end;
 
    PExample=^TExample;
    TExample = object(TExampleBase)
        procedure Test;virtual;
    end;
 
    constructor TExampleBase.Create;
        begin
        end;
 
    destructor TExampleBase.Done;
        begin
        end;
 
    procedure TExampleBase.Test;
        begin
            writeln('TExampleBase.Test');
        end;
 
    procedure TExample.Test;
        begin
            writeln('TExample.Test');
        end;
 
    var examplePointer:PExample;
        exampleBasePointer1, exampleBasePointer2:PExampleBase;
        begin
                        clrscr;
                        new(exampleBasePointer1, Create);
            new(examplePointer, Create);
            exampleBasePointer2:=examplePointer;
            exampleBasePointer1^.Test;
            exampleBasePointer2^.Test;
            Dispose(exampleBasePointer1, Done);
            Dispose(examplePointer, Done);
                        readln;
        end.
Результат компиляции в Turbo Pascal 7

Написать курсовую "Транслятор из C++ в Pascal"

Результат выполнения в Turbo Pascal 7

Написать курсовую "Транслятор из C++ в Pascal"

Что не позволяет утверждать что в языке Pascal нет ООП т. к. оно там присутствует как минимум с 1993 года и на основании своих доказательств я утверждаю что язык Pascal уже тогда являлся достаточно сложным языком транслятор которого, а уж тем более транслятор с С++ на Pascal, написать достаточно сложно
В свете указаных доказательств считаю что HighPredator не разбирается в программировании на достаточном уровне чтобы судить о создании компиляторов/трансляторов

 Комментарий администратора 
Загружайте изображения и файлы на форум и прикрепляйте к сообщению.
http://www.cyberforum.ru/about-forum...tml#post594251
0
iifat
2235 / 1388 / 103
Регистрация: 05.06.2011
Сообщений: 3,822
10.02.2014, 03:05 #15
Цитата Сообщение от HighPredator Посмотреть сообщение
каким образом знание устройства компилятора и т.п. поможет перевести ваш пример на паскаль, в котором в принципе нет ООП?
Ну, вообще-то, ++ вполне себе компилируется в машинный код, в котором и вправду нет ООП. Так что само по себе это преодолимо.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
ну для начала, автору нужно напомнить, что транслятор из Си будет попроще, чем Си++.
Не просто попроще, а сильно попроще. Но, напоминаю, ТС таки хочет ++.
И таки не могу смолчать, странная какая-то курсовая. Трансляция ++ в полном объёме — не сильно, имхо, проще, Паскаль там, Ассемблер или чо ещё...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2014, 03:05
Привет! Вот еще темы с ответами:

дано четырехзначное число. если сумма первых 2 цифр=сумме 2 последних, написать "yes", иначе "no" - C++
Вот попробовал написать код но ошибку выдает: #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; int main() { ...

Написать программу, которая заменяет в указанном слове все буквы "b" на сочетание "ky" - C++
Написать программу, которая заменяет в указанном слове все буквы &quot;b&quot; на сочетание &quot;ky&quot;. Использовать 2 массива: начальный и результирующий....

Написать программу что меняло слово "кукушка" на "груша", с помощью стека - C++
Написать программу что меняло слово кукушка на груша , с помощью стека(1 программа) и очередь(2 программа) Помогите пожалуйста очень...

Написать функцию выбора пунктов меню стрелками "вверх" "вниз" - C++
Доброго всем времени суток.Пожалуйста подскажите как мне справиться с моей проблемой.Нужно написать функцию выбора пунктов меню стрелками...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
10.02.2014, 03:05
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru