nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 10:17



Reply to topic  [ 100 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7
Pascal 
Author Message
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
На самом деле скорость работы скорее не от языка зависит, а от оптимизирующих свойств компилятора (например некоторые люди поработавшие с компилятором Intel Fortran уверены, что самые быстрые программы нужно писать только на фортране)

_________________
:dj: https://mastodon.social/@Shaos


18 Jul 2008 05:34
Profile WWW
God
User avatar

Joined: 03 Feb 2003 13:53
Posts: 1078
Reply with quote
Post 
Shaos wrote:
На самом деле скорость работы скорее не от языка зависит, а от оптимизирующих свойств компилятора (например некоторые люди поработавшие с компилятором Intel Fortran уверены, что самые быстрые программы нужно писать только на фортране)

Не скажи скорость зависит в том числе и от парадигм языка. Некие языки(модула-2 например) всегда загружают только динамические библиотеки и линкует их вв процессе выполнения. А пхп, должен например ещё и запустит интерпритатор.

_________________
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин


18 Jul 2008 06:15
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Дискуссия заняла 7 страниц и примено 3 года...
Интересно, в результате неё кто-либо из участников изменил своё предпочтение
своему рабочему софту?


15 Apr 2011 14:04
Profile
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
HardWareMan wrote:
bar wrote:
Больше всего меня бесили сложные правила расстановки точки с запятой.
То она должна стоять в конце строки, то не должна... Запомнить эти правила и расставлять правильно несложно, но когда дело доходит до копирования кода кусками из одного места в другое, паскаль начинает фонтанировать идиотизмом, вонять что else ни к месту, или что он несмотря на очки не может найти точки с запятой там, где она должна быть.
Ещё я постоянно спотыкался о невероятные приоритеты операций: как вообще Вирту пришло в голову сделать приоритет логических операций выше приоритета операций сравнения?

Я об этой проблеме даже и не знал, пока ты мне не сказал, лол. :3

Мне нечего на это сказать. Разве что могу задать уточняющий вопрос: о какой из проблем ты не знал? О проблемах с ";" или о невероятных приоритетах?
Кстати эта ; перед else -- это не единственный такого рода момент. Скажем перечисляя элементы типа enum {one, two, three, four, }, я могу оставить запятую после four -- это сделано с той же целью: чтобы копирование кода из конца перечисления в середину оставляло бы код правильным. То же при перечислении элементов инициализатора массива или структуры.
Но, кстати, то, что паскалист не замечал этих проблем -- это очень предсказуемо. Каждый оценивает программирование с вышки "своего" языка. И чем меньше возможностей в языке, тем большее число возможностей такой программист считает опциональными, ненужными, а может даже и вредными.

HardWareMan wrote:
bar wrote:
Ну и отсутствие нормального for'а. Распихивать по while'ам все циклы утомляет. Надписи типа:
Code:
for(initLoop(); testLoop(); moveLoop()) {...}
в C очень удобны тем, что собирают организацию цикла в одно место. В паскале же постоянно приходится перемешивать организацию цикла и собственно итерацию цикла. Хуже чем в ассемблере. Постоянно приходится писать что-то типа
Code:
while true; do begin ... end;

Объясни мне практический смысл этого джицу.

Есть такая парадигма программирования, называется она: структурное программирование. Так вот именно ради этого был изобретён C'шный for. Организация цикла -- сама по себе, код относящийся к выполнению действий на каждой итерации -- сам по себе.

Подход "макси" к этой проблеме -- это lisp'овский макрос loop, используя который я пишу что-то типа:
Code:
(loop
    initially действия-выполняемые-до-старта-цикла
    for i from 0 to N  ;;переменная которая на каждой итерации будет иметь разные значения
    for item in mylist ;;ещё одна такая переменная, будет пробегать элементы списка
    for j = 1 then (* j 2) ;; ещё одна -- будет перебирать степени двойки
    with a = 7  ;;локальная переменная
    do безусловно-выполняемые-на-каждой-итерации-действия
    collect эти-значения-с-каждой-итерации-будут-собраны-в-список
    finally действия-выполняемые-после-завершения-цикла)

Там ещё есть возможность условного выполнения кода на итерации, возможности итерации по массивам, по хеш-таблицам, естественно возможности досрочного завершения цикла... Но это в стиле Common Lisp'а -- настолько универсально, что выглядит не иначе как монструозно.
C'шный подход не столь универсален, но зато не лишён изящности:
Code:
for (i = findFirst(); i != NULL; i = findNext()) {
    делаем полезные вещи с i
}

Мне не надо выполнение полезных вещей перетасовывать с кодом организации цикла. То есть надо иногда, но гораздо реже чем в паскале.
И мало того, что такие for'ы читать понятнее, чем уродские while'ы, в которых сам чёрт ногу сломит в попытке выяснить, что этот while делает. Так ведь такие for'ы гораздо удачнее для макрописательства. Я, скажем, с трудом могу представить себе, как в паскале можно было бы написать макрос list_for_each, даже если бы в паскале был бы макроязык. (list_for_each -- достаточно активно используемый макрос в ядре linux, и без этого макроса код ядра стал бы существенно менее читаемым.)


16 Apr 2011 10:49
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Вобще, на мой взгляд, расстановка операторных скобок, будь то begin-end или {} , а также различных ограничителей строк - это перекладывание части функций синтаксического анализа с компилятора на плечи программиста.


16 Apr 2011 12:14
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Вобще, на мой взгляд, расстановка операторных скобок, будь то begin-end или {} , а также различных ограничителей строк - это перекладывание части функций синтаксического анализа с компилятора на плечи программиста.


в питоне например отбивками слева надо блоки выделять - эдакое структурное программирование в пределе :roll:

а в лиспе из синтаксиса есть только круглые скобки, много скобок...

P.S. лисповиков нам ещё не хватает - холиварщики ещё те - за любимый лисп любого сишника порвут :dj:

_________________
:dj: https://mastodon.social/@Shaos


16 Apr 2011 12:18
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
лисповиков нам ещё не хватает - холиварщики ещё те - за любимый лисп любого сишника порвут

Я просто высказал своё мнение, а кого здесь не хватает, тебе, видимо, виднее...
Я не сторонник холиваров во всех их проявлениях.

P.S. Я там вот выше вопрос задал и по отсутствию ответа понимаю так, что все
горячие дискуссии и холивары с переходом на личности ещё не изменили конструктивно
ни чью точку зрения на языки программирования.


16 Apr 2011 12:35
Profile
Senior

Joined: 28 Feb 2006 21:34
Posts: 180
Reply with quote
Post 
Shaos wrote:
Lavr wrote:
Вобще, на мой взгляд, расстановка операторных скобок, будь то begin-end или {} , а также различных ограничителей строк - это перекладывание части функций синтаксического анализа с компилятора на плечи программиста.


в питоне например отбивками слева надо блоки выделять - эдакое структурное программирование в пределе :roll:

а в лиспе из синтаксиса есть только круглые скобки, много скобок...

P.S. лисповиков нам ещё не хватает - холиварщики ещё те - за любимый лисп любого сишника порвут :dj:

Саша, а я между прочим фанат Лиспа. ))) В свое время написал аж две реализации. ))))


17 Apr 2011 01:29
Profile
Online
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22410
Location: Silicon Valley
Reply with quote
Post 
А на чём ты писал эти две реализации?
Настоящий лисповик не юзает ничего кроме лиспа :roll:

_________________
:dj: https://mastodon.social/@Shaos


18 Apr 2011 05:50
Profile WWW
Senior

Joined: 28 Feb 2006 21:34
Posts: 180
Reply with quote
Post 
Shaos wrote:
А на чём ты писал эти две реализации?
Настоящий лисповик не юзает ничего кроме лиспа :roll:

Увы, лиспа для реализации как раз и не было. ))) Был голый ассемблер. А потом Си и ассемблер. ЕСли интересно могу исходники выложить.


18 Apr 2011 09:52
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 100 posts ]  Go to page Previous  1 ... 3, 4, 5, 6, 7

Who is online

Users browsing this forum: Google [Bot], Shaos and 13 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.