На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Страницы: (7) [1] 2 3 ...  6 7 все  ( Перейти к последнему сообщению )  
> Язык программирования Алмаз , или коротко язык A
    Собираюсь разработать новый язык программирования Алмаз и реализовать транслятор для него на С++ и в С++. Основная причина сделать более надёжный язык по сравнению с С++, т.е. такой чтобы в одних случаях не давал ошибаться, а в других позволял быстро обнаружить ошибку. Буду выдавать информацию небольшими порциями.
    Смешанной арифметики в этом языке не будет. Все приведения типа только явные.
      Цитата prografix @
      Собираюсь разработать новый язык программирования Алмаз и реализовать транслятор для него на С++ и в С++. Основная причина сделать более надёжный язык по сравнению с С++, т.е. такой чтобы в одних случаях не давал ошибаться, а в других позволял быстро обнаружить ошибку. Буду выдавать информацию небольшими порциями.
      Смешанной арифметики в этом языке не будет. Все приведения типа только явные.

      Подобный язык уже есть, он называется - Java... ;)
        Alex221
        Не знал, что там всё так строго.
        В языке А будут следующие арифметические типы:
        знаковые целые - int8, int16, int32, int64,
        беззнаковые целые - uint8, uint16, uint32, uint64,
        с плавающей точкой - float32, float64, float80.
        Для преобразования типов предназначены встроенные функции названия которых состоит из символа подчёркивания и имени типа. Например,
        int64 a;
        int32 b;
        a = _int64 ( b );
        В случае если приведение некорректно будет бросаться исключение.
        Сообщение отредактировано: prografix -
          Так-с! Visual C++ 6.0 это хорошо!

          Цитата
          Для преобразования типов предназначены встроенные функции названия которых состоит из символа подчёркивания и имени типа. Например,
          int64 a;
          int32 b;
          a = _int64 ( b );
          В случае если приведение некорректно будет бросаться исключение.


          А как насчет сивольных типов? и их преобразования?
            Цитата maxim84_ @

            А как насчет сивольных типов? и их преобразования?

            Основная идея, что символьный тип эквивалентен одному из беззнаковых целых.
            Например, 'a' имеет тип uint8. Но если поддерживать unicode, то тогда будет uint16.
            Над деталями пока размышляю.
              так секунду... ты хоть примерчик покажи как с ними работать! а то что я не совсем пойму...
                maxim84_
                Давай этот вопрос разберём позже, а сейчас вот что. Я представляю работу с транслятором так. Будет некоторое приложение в Windows, окно которого состоит из двух частей. При загрузке файла ( исходника ) он появляется в левом окне, а при нажатие на заданную кнопку ( или пункт в меню ) этот исходник транслируется в текст на другом языке, который появляется в правом окне. В нашем случае это будет: язык А -> С++. Сообщения об ошибках появляются тоже в правом окне. Причём это приложение можно будет использовать для разных пар языков. Возмёшься его сделать? ( Только основу, без трансляции ). Я в это время сделаю сайт, куда буду выкладывать документацию.
                  в смысле основу? т.е. сам редактор?

                  а дебугер будет?

                  слушай а почему в С++ модет лучше а asm? так код можно оптимизировать на любой прцессор. :)

                  Добавлено
                  а еще вопрос! как делать с поддрежко MFC или все ручками писать?? :) я пока начну на MFC

                  Добавлено
                  а вот че еще забыл! делать поддержку проектов или по только открывать по одному файлу. т.е. сделать как VB или что то типа старых языков типа QBasic -где возможность работать только с одним фалом?
                  Сообщение отредактировано: maxim84_ -
                    Цитата maxim84_ @
                    в смысле основу? т.е. сам редактор?

                    Да.
                    Цитата maxim84_ @
                    а дебугер будет?

                    Пока нет. Всё равно на выходе будет С++, а не исполняемый код.

                    Цитата maxim84_ @
                    слушай а почему в С++ модет лучше а asm? так код можно оптимизировать на любой прцессор. :)

                    Потому-что 1) так проше 2) С++ универсальнее, чем ассемблер ( не завязан на железо ) 3) оптимизировать код - это другая задача, пусть ей занимаются Microsoft и т.д.
                    Цитата maxim84_ @

                    Добавлено
                    а еще вопрос! как делать с поддрежко MFC или все ручками писать?? :) я пока начну на MFC

                    Добавлено
                    а вот че еще забыл! делать поддержку проектов или по только открывать по одному файлу. т.е. сделать как VB или что то типа старых языков типа QBasic -где возможность работать только с одним фалом?

                    С MFC проще. Пока по одному файлу.
                      ок, задача ясна.....
                        Цитата prografix @
                        Будет некоторое приложение в Windows

                        А чего сразу виндос? Вдруг язык будет интересен широким массам пингвинеров? ;)

                        Цитата prografix @
                        такой чтобы в одних случаях не давал ошибаться, а в других позволял быстро обнаружить ошибку.

                        Цитата prografix @
                        Все приведения типа только явные.

                        Читал-читал... Слушай, а зачем изобретать "новый велосипед"?
                        Имхо лучше сделать хитрый парсер, который будет проверять соответствие типов. И "в поддержку" к нему - спецификацию какие типы рекомендуются к использованию. Все преобразования типа () парсером переделывать в static_cast<>() и проверять соответствие типов. По-моему будует очень полезная тулза.
                          Kutushut
                          Лично мне нужно приложение в Windows.
                          По поводу преобразования типов по умолчанию. Вначале я хотел запретить все, а теперь думаю, что в случае преобразования без потери информации можно разрешить.
                            Цитата prografix @
                            Вначале я хотел запретить все

                            Хм... Может ты сразу напишешь тут цель своего языка чтобы я не чесал репу насчет того зачем это надо? ;)
                            Я так понимаю, это что-то для мат. обеспечения?
                            Потому как если, допустим, char не преобразовать к int, в поток его значение не выведешь...
                              Цитата Kutushut @
                              Хм... Может ты сразу напишешь тут цель своего языка чтобы я не чесал репу насчет того зачем это надо? ;)
                              Я так понимаю, это что-то для мат. обеспечения?
                              Потому как если, допустим, char не преобразовать к int, в поток его значение не выведешь...

                              Цель такая ( программа-минимум ) - сделать язык и транслятор с него на С++, т.к. мне нужны программы на С++. Новый язык нужен для того, чтобы писать более надёжные программы ( меньше ошибок ). Это минимум, но из того может получиться гораздо большее.
                              Цитата Kutushut @
                              Я так понимаю, это что-то для мат. обеспечения?
                              Потому как если, допустим, char не преобразовать к int, в поток его значение не выведешь...

                              Я думаю, что язык будет универсальным, как С++. Насчёт, второго предложения не понял. Тут расхождений с С++ особых не наблюдается.
                                prografix, а может быть попробовать научиться на С++ более надежные программы писать? Да и что ты понимаешь под "более надежные программы с меньшим количеством ошибок"? Тут уже, по моему, все от кривизны рук программиста зависит, а не от мощности транслятора/компилятора...
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (7) [1] 2 3 ...  6 7 все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0429 ]   [ 15 queries used ]   [ Generated: 27.04.24, 15:05 GMT ]