Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
 
 15:33 Geo
 
 
Во Флориде и в Королевстве сейчас  15:49[Войти] | [Зарегистрироваться]
Обсуждение темы:
Вопросы оптимизации кода

Тема открыта по просьбе жителей Королевства и посвящена обсуждению вопросов оптимизации кода. Выставляйте свои лучшие и худшие тексты и не стесняйтесь их обсуждать. В споре рождается истина. Или, по крайней мере, оптимизация.

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 737 сообщений

Добавить свое сообщение

Отслеживать это обсуждение


Смотрите также обсуждения:
Тестирование проекта. Отладка.
  • Подводные камни
  • Централизованная обработка ошибок
  • Бета-тестирование
  • Давайте учиться на ошибках.
  • Почему программисты допускают ошибки?
  • Автоматизированные тесты для GUI
  • О системах контроля ошибок

  • <<<... | 287—278 | 277—268 | 267—258 | ...>>>
    Всего сообщений в теме: 737; страниц: 74; текущая страница: 47


    № 277   08-09-2005 00:49 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 274« (J.K.J.)
    ___________________________

    Вы сами признали, что компилятор написан не на самой Delphi, т.е. фактически подтвердили мои слова, но при этом что-то там говорите про историю :). Компилятор - это самое главное.

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

    Если компилятор для Delphi 1 был написан на самой Delphi 1 - значит я не прав. Если нет - значит это Вы наводите "исторический туман" :)

    Ну давайте посмотрим, кто быстрее "напишет" программу для просмотра БД - я на Delphi или Вы на Borland C++ 5.5 (у которого есть только компилятор, но зато какой крутой, а ведь компилятор - это главное). Естественно не прибегая к использованию библиотек, не входящих в поставку продукта.


    № 276   07-09-2005 16:06 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 275« (Unkas)
    ___________________________

    Прочитал все. Понял, что безнадежно туп :))). Никак не могу понять:

    Может быть, это будет понятно? См. ниже.

    Дано: компилятор с D на X, реализованный на D; D<D>X
    Получить: компилятор с D на X, реализованный на X; D<X>X


    Общий вид T-диаграмм, применяемых для описания раскрутки компиляторов, имеет вид:

    S - T
      |
      I



    где S – входной язык, T – целевой язык, I – язык реализации.

    Будем записывать это в виде S<I>T.

    Введем следующие условные обозначения:

    D = Delphi
    P = Turbo Pascal
    X = x86 (бинарный код процессора x86)

    Решение:

    1. Cтроим компилятор с D на X, реализованный на P.
    2. Транслируем этот компилятор имеющимся компилятором с P на X, реализованным на X.
    3. Компилятор c D на X, реализованный на P, готов.
    4. Транслируем компилятор с D на X, реализованный на D, полученным компилятором D<P>X.
    5. Требуемый компилятор D<X>X готов.


    В виде T-диаграмм выглядит так:

    D - X  D - X
      |      |
      D D – X X
          |   
          P



    При стыковки T-диаграмм между собой совмещают левое крыло (входной язык) с основанием левого T-блока (языком его реализации), а правое крыло (целевой язык) с основанием правого T-блока (языком реализации этого блока). Слева размещают то, с чего начинают, а справа – то, что требуется получить.
           
    Формулой записывается так: D<D>X + D<P>X = D<X>X


    № 275   07-09-2005 12:43 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Ответ на »сообщение 269« (Unkas)
    >>>Вы все обсуждение читаете или только последние
    >>>два сообщения?

    Прочитал все. Понял, что безнадежно туп :))).
    Никак не могу понять:
    Чем можно откомпилировать исходный текст самого компилятора, если исполнительного кода компилятора еще не существует: мы еще только хотим его получить.


    № 274   07-09-2005 12:18 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Ответ на »сообщение 253« (J.K.J.)
    >>>Delphi 1 была написана на Delphi 1. В 90-е гг.
    >>>это был довольно-таки общеизвестный факт.
    >>>Единственное, что там было написано не на
    >>>самой Delphi, это естественно, компилятор. Но,
    >>>видимо, современная молодежь совсем не любит
    >>>учить историю :-(

    Что-то я Ваши "намеки" не пойму.
    Вы сами признали, что компилятор написан не на самой Delphi, т.е. фактически подтвердили мои слова, но при этом что-то там говорите про историю :). Компилятор - это самое главное. Если компилятор для Delphi 1 был написан на самой Delphi 1 - значит я не прав. Если нет - значит это Вы наводите "исторический туман" :)

    P.S. А про молодежь - аккуратнее. Еще неизвестно, кто из нас моложе :).


    № 273   07-09-2005 07:14 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 272« (Ким)
    ___________________________
    Вы очень узко понимаете оптимизацию.
     Geo


    № 272   07-09-2005 04:11 Ответить на это сообщение Ответить на это сообщение с цитированием
    Как я вижу, тема оптимизации незаметно выродилась в обсуждение истоков и перспектив сред разработки и языков программирования. В принципе оно и понятно, в Delphi не такой уж и большой простор для оптимизации, чаще всего эта оптимизация сводится к устранению типичных глупостей, вроде наращивания строки в цикле по одному символу без предварительного выделения памяти :).
    В отличии от того же С, Delphi почти не позволяет влиять на генерируемый код, если только не прибегать к полузаконным ухищрениям или ассемблеру. Таким образом, оптимизация как таковая возможна лишь на уровне алгоритма, который мало зависит от применяемого языка. В итоге получается, что по вопросу оптимизации кода в Delphi обсуждать вроде бы и нечего - нужно обсуждать оптимизацию алгоритмов в целом, без привязки к чему-либо. Так-то вот.
    Извините, если отклонился от вновь предложенной темы.


    № 271   07-09-2005 02:20 Ответить на это сообщение Ответить на это сообщение с цитированием
    Еще прикольно сделали в Сквике: сначала сделали подмножество солтока, компилируемое в си, а потом на нем откомпилировали интерпретатор:

    http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html
    ...
    Compile the interpreter to make it practical:
      *Design a translator from a subset of Smalltalk-80 to C.
      *Implement this translator.
      *Translate the virtual machine to C and compile it.
      *Write a small C interface to the Mac OS.
      *Run the compiled interpreter with the new image.
    ...
    Вобщем и целом, конечно нельзя откомпилировать первую версию компилятора в первый раз не используя ничего кроме этого компилятора.
    (Другое дело, что это можно сделать вручную или с помощью другого языка высокого уровня.)

    Конечно всегда сохранится некоторая ниша для тех, кто будет работать на машкоде и низкоуровневых языках (хотя бы программисты кодогенераторов) но эта ниша будет сокращаться.

    Довольно интересные размышления здесь (на каком языке программирования мы будет писать через 100 лет):
    http://www.paulgraham.com/hundred.html


    № 270   06-09-2005 12:21 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 269« (Unkas)
    ___________________________
    Вы все обсуждение читаете или только последние два сообщения?
     Geo


    № 269   06-09-2005 12:03 Ответить на это сообщение Ответить на это сообщение с цитированием
    >>>Чего-то я не понимаю. Чисто теоретически,
    >>>компилятор языка можно написать на любом
    >>>языке, если в нем есть функция вывода в файл.
    >>>Ведь нужно всего лишь создать exe, не так ли?
    >>>И практически тоже.

    Я тоже чего-то не понимаю.
    Допустим я написал на языке ABC исходный текст компилятора для этого самого языка (ABC).
    А теперь объясните, как я могу откомпилировать этот текст, чтобы получить исполнительный код написанного компилятора? Ведь исполнительного кода компилятора у меня еще нет - он существует только в виде исходного текста на языке ABC.


    № 268   06-09-2005 08:02 Ответить на это сообщение Ответить на это сообщение с цитированием
    Ответ на »сообщение 266« ()
    ___________________________

    Чего-то я не понимаю. Чисто теоретически, компилятор языка можно написать на любом языке, если в нем есть функция вывода в файл. Ведь нужно всего лишь создать exe, не так ли?
    И практически тоже.

    А если так, то что особенного в том, что Delphi написана на Delphi?
    В том, что если у нас есть только dcc32.exe, мы не  можем сказать, что у нас есть среда разработки

    Далее просто компилятор ПОМ напишут на Delphi, а далее на самом ПОМ можно его же (ПОМ) и развивать.
    О чем и речь. Ранее поднимался вопрос о том, что кто-то должен делать ПОМ и что это должен быть программист, знающий низкоуровневое программирование. Пример Delphi показывает, что это, в принципе, нужно только для разработки компилятора. А дальше - все намного проще.


    <<<... | 287—278 | 277—268 | 267—258 | ...>>>
    Всего сообщений в теме: 737; страниц: 74; текущая страница: 47


    Добавить свое сообщение

    Отслеживать это обсуждение

    Дополнительная навигация:
    Количество сообщений на странице

    Порядок сортировки сообщений
    Новое сообщение вверху списка (сетевая хронология)
    Первое сообщение вверху списка (обычная хронология)

    Перейти на конкретную страницу по номеру
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования