|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.11.2008, 18:37 | #11 | |
Пользователь
Регистрация: 22.11.2008
Сообщений: 10
|
Цитата:
Код:
Ну не здорово ли? |
|
23.11.2008, 21:25 | #12 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 10
|
По поводу #define.
При определении Код:
Код:
|
23.11.2008, 23:08 | #13 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Это не равносильно тому что вы сказали... define объявляет имя которое в следствии при встрече в коде будет заменено на его значение... в си присутствует const... и если заменять на его значение значит не потребуется после трансляции в асм резервировать место в сегменте данных
А вы сами язык разрабатываите ? А описание синтаксиса есть, ну на что он будет похож? |
23.11.2008, 23:43 | #14 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,554
|
Если константа не является типизированной, то под неё не выделяется памяти в области данных, замены происходят на этапе компилирования.
E-Mail: arigato.freelance@gmail.com
|
24.11.2008, 23:45 | #15 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 10
|
Строго говоря, дирректива #defune относится к препроцессору. Препроцессор вызывается до компилятора. Именно препроцессор заменяет все встреченные #define на их значения. Если модель совсем упростить, вызывается функция StrReplace(CodeLine, DefineName, DefineValue);.
Кстати, все встреченные #incude заменяются на содержимое файла (аналогично диррективе {$I Filename.inc} в Delphi). А уже потом то что получится, то есть такая длинная длинная простыня листинга, отправляется компилятору. У компилятора GCC есть замечательная опция, позволяет сохранить результат работы препроцессора в файл. После этого программка hello world весит 300к текста . Ну а что в какой сегмент кидать, это уж на усмотрение оптимизатора. Хотя, можно спец диррективами поправить.. Ладно, что то я заболтался.. Про на что будет похож язык я немногим выше писал.. Видимо, я не очень конкретно выражаюсь.. Попробую по другому объяснить.. На самом деле, все языки класса Delphi, С, Modula, C++ (забыл что то как они одним слово зовутся), во многом похожи, и друг друга взаимозаменяют. Но при этом, на мой взгляд, у них есть существенный недостаток, они универсальные. Подразумевается что на них можно и утилитки писать и огромные проекты типа распределённых баз данных или систем проектирования. Я же хочу создать язык ориентированный на небольшие, но быстрые утилиты, демки, игры и т.д. Да, он будет похож и на Дельфи, и на Си в чём то, но в тоже время будет много интересных решений. Фишка в том, что я не сковываю себя необходимостью совместимости с другими языками. Я разрабатываю его с нуля, но с учётом опыта других языков. Спецификации нет. Есть несколько модулей для Bison, на которых я отрабатывал кое какие идеи.. |
25.11.2008, 00:26 | #16 | |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,554
|
Цитата:
E-Mail: arigato.freelance@gmail.com
|
|
25.11.2008, 00:57 | #17 |
Пользователь
Регистрация: 22.11.2008
Сообщений: 10
|
Хм.. Я имел в виду императивные языки. Языки высокого уровня это более общее понятие, в него, помимо обозначенных мной языков, так же входят скриптовые языки, языки управления БД и так далее..
Про императивные языки подробнее http://masters.donntu.edu.ua/2002/fv...tml#Imperative |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кто каких животных любит... | Altera | Свободное общение | 46 | 02.10.2008 04:09 |
Чего вам не хватает в вашем языке? | crazy horse | Свободное общение | 3 | 02.09.2008 17:25 |
Не хватает практики на C++ | Rembo | Свободное общение | 11 | 04.08.2008 18:36 |