| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Python: Общие вопросы > про перевод FAQ |
| Автор: setq 17.10.2005, 23:18 | ||
не могу перевести такой вот абзац ((
это из Programming FAQ, статья номер 1.6.11 |
| Автор: Void 18.10.2005, 10:46 | ||||
Попробую...
Немножко коряво... Возможно даже стоит заменить русский перевод кальками: трассировку на "стектрейс" и кадр на "фрейм". Я несколько сомневаюсь, что имелось в виду: просто перехват исключения в except, или же проброс нового исключения из другого обработчика. Скорее все-таки первое. Кстати: Комментарий к 1.2.11 (про тернарный оператор). ИМХО, красивее всего было бы сделать оператор if выражением, как в Ruby:
Но это мое сугубо личное мнение |
| Автор: Young 18.10.2005, 11:01 |
| А где будет опубликован перевод? |
| Автор: setq 18.10.2005, 11:39 | ||||||
Void, собственно в этом проблема: как воспроизвести то, о чём говорится в тексте абзаца? если можно будет "сказать" это на Питоне )), то труда не составит сказать это и по-русски. мои эксперименты с шелом ничего не прояснили. ((
я в таких случаях ещё не решил что делать. я либо просто оставляю английское слово как есть, либо ставлю его в скобках после своего перевода в надежде, что кто-то предложит лучший вариант. впрочем, к словам "трассировка" и "кадр" у меня нет совершенно никаких претензий.
к стыду своему так и не заглянул в упомянутый proposal и не посмотрел чего предлагал народ. я всеми руками за тернарный if и за многие другие вещи, которые легче писать, чем читать )))) являюсь поклонником C'шного синтаксиса. )) Ruby я не знаю. качать доки и изучать их - лень. вот если бы кто-нибудь выложил обзорную статью про Ruby, как это в своё время сделал foRaver о Питоне, то возможно это бы меня вдохновило. )) Young:
не знаю. неплохое место для подобных вещей - Vingrad'овский FAQ. какие будут ещё идеи? |
| Автор: setq 25.10.2005, 23:16 | ||
HELFEN!
у меня вызывает сложность перевод ...in their time complexity. какого чорта?! ))) и ещё, как по-русски сказать list comprehension? есть ли общепринятый термин? (в книге "Основные концепции языков программирования" это переведено как "полные списки". с таким же успехом можно было перевести... ну я не знаю... floppy disk -- "мягкий круг") |
| Автор: Sardar 26.10.2005, 00:22 | ||
Разные структуры требуют разного времени на свои операции. Например хештаблица хороша в поиске, но имеет эффективное ограничение по размеру (т.е. забивать её можно до верху, но эффективность будет падать при 70-80% заполнения). Связанные списки имеют константное и самое малое из всех время вставки элемента. Это всё называют time complexity В тексте имелось в виду что списки эквивалентны по скорости массивам из C/Pascal (во что вериться с трудом...), разница в том что списки могут хранить элементы любых типов. Почему говорю что веритьсй с трудом, т.к. массив обьектов определьённого класса в C++ это кусок памяти, в котором действительно храняться обьекты в ряд, смещение высчитываеться по индексу*длинну_структуры_обьекта. Чтение такого массива занимает константное время, самое быстрое из возможных. Списки в питоне содержат универсальный тип (по моему структура на все примитивы, включая ссылки на обьекты). Xраня обьекты, на самом деле храняться ссылки, обьекты же расположенны (зачастую в рандомном порядке) в памяти(куче). Читая обьект, сначала считываеться ссылка из массива, затем сам обьект. Это занимает и больше памяти и больше времени на доступ, и железо это не любит, т.к. кешь данных процессора может очиститься при обращении к памяти за следующим обьектом, таких обращений может быть много (пробег в цикле). Что то увело на оффтоп |
| Автор: setq 26.10.2005, 09:25 |
| нет. это не оффтоп. спасибо за соображения. (в вопросах касающихся Питона невольно веришь человеку из Голландии |
| Автор: srd 27.10.2005, 14:53 | ||
Не могу перевести последнюю часть предложения (после тире)
|
| Автор: Sardar 27.10.2005, 15:25 | ||
| как следствие не изменяемости строк становиться возмжным размещать их эффективно в памяти в момент загрузки/сборки, что согласуеться с требованиями к постоянным не изменяемым хранилищам данных. Кстати это действительно так, любые операции над строками порождают новые строки (что требует памяти), но строки могут быть связанны вместе: a = "тест"; b = "тест"; c = a + b + "ура" Код породит всего две константы: "тест" и "ура", a и b указывают на один и тот же обьект. Переменная c может содержать сложную строку - связанный список строк(блоков символов). Это всё позволяет очень сильно экономить память, за счёт больших скачков по памяти. С памятью проще работать, т.к. любая операция при которой изменяеться длинна строки, особенно на увеличение, потребует нового цельного блока в памяти для размещения строки. Старый блок будет выброшен. При не мутируемых строках другие переменные могут по прежнему ссылаться на старый блок. Это особенно актуально для списков.
Это зря, я изучал интерпретаторы/компиляторы/формальные грамматики etc. просто потому что интересно. Во внтренностях питона не разбирался |
| Автор: srd 27.10.2005, 15:43 |
| Sardar, спасибо. |
| Автор: setq 28.10.2005, 22:29 |
| Core Language -- как это сказать по-русски? |
| Автор: Sardar 28.10.2005, 23:39 |
| Смотря в каком контексте. Обычно это основа языка, т.е. стандартные библиотеки и т.п. Также можно сказать о синтаксических конструкциях языка, о если убрать все библиотеки, то то что останеться и встроенно в компилер/интерпретатор. Также можно сказать что это формальная грамматика языка, хотя так редко встретишь. Выложи полное предложение/абзац. |
| Автор: setq 29.10.2005, 08:43 | ||
так называется раздел в Programming FAQ. привожу контекст:
|
| Автор: Sardar 29.10.2005, 13:53 |
| Основы языка/методология языка. Т.е. то что можно делать на питоне без подключения каких либо особых либ + основные приёмы используемые в языке. Назови просто: Основы языка |
| Автор: srd 31.10.2005, 06:51 |
| Сегодня узнал, что у нас на форуме есть wiki - http://wiki.vingrad.ru/ Может быть перенести работу по перефоду FAQ туда?? ИМХО, будет более удобно и продуктивнее... |
| Автор: srd 31.10.2005, 11:44 |
| Вопрос: 1.4.8. How fast are exceptions? Ответ: A try/except block is extremely efficient. Actually executing an exception is expensive. Не понимаю, что здесь имеется в виду. Такое ощущение, что эти две фразы противоречат друг другу: блок try/except очень эффективен, но при этом выполнение исключения обходится дорого? |
| Автор: setq 31.10.2005, 15:09 |
| wiki -- не знаком. как всё это можно устроить? и если можно, какую-нибудь ссылку на коротенький wiki FAQ. executing an exception is expensive -- не понимаю что подразумевается |
| Автор: srd 31.10.2005, 15:31 |
| setq Попробуй почитать здесь http://meta.wikimedia.org/wiki/Помощь:Содержание ? |
| Автор: srd 31.10.2005, 16:22 |
| В качестве эксперимента я поместил в Вики кусочек нашего FAQ. Заходим на заглавную страницу http://wiki.vingrad.ru и выбираем Python Description, или сразу http://wiki.vingrad.ru/index.php/Python:Description |
| Автор: Sardar 31.10.2005, 17:56 | ||
Блок try/catch выполняеться очень эффективно. Выполнение обработчика исключения может вызывать накладные расходы, но так как исключительные ситуаци возникают редко, эти потери можно опустить. Имееться в виду, что сам try/catch - конструкция весьма быстрая, т.е. на её отработку уходит мало кода. Обработчик исключения задействуеться в момент выброса исключения, вот он может нагрузить процессор вычислениями. Другими словами вложи программу в множество try/catch и запусти - работает быстро. Начни генерить кучу исключений из всех блоков try/catch - программа затормозит. |
| Автор: set qoo 28.11.2005, 15:14 |
| я устал :( |
| Автор: srd 2.12.2005, 12:53 |
| Жаль. А я до середины декабря не смогу вернуться к переводу |
| Автор: Sardar 2.12.2005, 22:01 |
| Парни не ломайтесь, возьмите передышку, не всё сразу, главное не бросить |