avva: (Default)
[personal profile] avva
(контекст)

Я время от времени вспоминаю это его высказывание:
Практически невозможно научить хорошо программировать студентов, ориентированных первоначально на БЕЙСИК: как потенциальные программисты они умственно оболванены без надежды на исцеление.


Первая нетривиальная программа в моей жизни была мной написана на Бейсике.

Ещё и какая забавная была программа: она вычисляла число пи до любого знака после запятой (это в теории; на практике больше тысячи было нереально, Бейсик начинал задыхаться). Делала она это, суммируя тригонометрический ряд, который сходился к пи с точностью до коэффициента. Притом самый естественный ряд такого рода -- а именно 1 + 1/3 - 1/5 + 1/7 - 1/9 + 1/11 .... = pi/4 -- использовать было нельзя, так как он сходится до невозможности медленно. Поэтому я пошёл в библиотеку, зарылся в справочники и нашёл быстро сходящуюся формулу. Это было разложение по арктангенсу: пользуемся тем, что pi = 16*arctan(1/5) - 4*arctan(1/239), а эти два арктангенса раскладываем в ряды по формуле arctan(x) = x - x3/3 + x5/5 - x7/7 + .... Такой метод давал больше одного значимого знака на каждую итерацию. Цифры я хранил в бейсиковском массиве, и ещё там были какие-то оптимизации, не помню.

Мне было, кажется, тринадцать лет. Я был безмерно горд и счастлив.


А афоризму Дейкстры этому я не верю, и никогда не верил. Он, несомненно -- забавен? остроумен? не знаю, какое слово подобрать взамен идеально подходящего здесь английского cute -- но одновременно глубоко неверен.

Date: 2002-08-08 01:24 am (UTC)
From: [identity profile] tejblum.livejournal.com
Да, я нечетко выразился. На самом деле я хотел возразить на высказывания чуть выше по треду. Конечно, perl -- процедурный язык. Но такой ли уж он "взаимозаменяемый" с другими процедурными языками, тем же C например? Или C++ с темплейтами и STL разве "взаимозаменяемый" с каким-нибудь Фортаном? За день можно, конечно, запомнить, что в таком-то языке if пишется так, while сяк, функции определяются эдак и т.д., но разве это называется овладеть?

Насчёт библиотеки: во-первых, она более обширна, поскольку поддерживает regex'ы в стиле perl'а версии 5. Во-вторых, утверждается, что она заметно быстрее.

Это наверное, однако регэкспы -- довольно мощная программисткая идея, не имеющая никакого отношения к PCRE. Разница между PCRE и любой стандартной реализацией или между синтаксисом perl5 и синтаксисом POSIX 1003.2 -- всего лишь небольшой прогресс.
From: [identity profile] syarzhuk.livejournal.com
>Конечно, perl -- процедурный язык. Но такой ли уж он "взаимозаменяемый" с другими процедурными
>языками, тем же C например?

C:
#include
[Error: Irreparable invalid markup ('<stdio.h>') in entry. Owner must fix manually. Raw contents below.]

>Конечно, perl -- процедурный язык. Но такой ли уж он "взаимозаменяемый" с другими процедурными
>языками, тем же C например?

C:
#include <stdio.h>
main()
{printf ("Hello World!\n");}

Perl:
print "Hello, World!\n";



From: [identity profile] cema.livejournal.com
C и perl Вы выучили, а с html-то непорядок. ;-)
From: [identity profile] tejblum.livejournal.com
Тоже мне доказательство. Это в лучшем случае пример, который в общем случае ничего не доказывает. Потом, это не программы, а издевательство над языками программирования ;-)

Пару комментов назад я привёл пример оператора в perl (при всей свой тривиальности, этот оператор делает кое-что реально нужное, в отличие от hello world):
    s,/\./,/,g;

Я утверждаю, что делающий то же самое кусок программы на C (который, разумеется, написать несложно; да и на других языках программирования тоже) будет сильно отличаться от этого. Следовательно, вообще говоря программы на C пишутся не так, как программы на perl, и наоборот.
From: [identity profile] syarzhuk.livejournal.com
Следовательно, вообще говоря программы на C пишутся не так, как программы на perl, и наоборот.
And the English sentences are written in a different way from Russian ones, however both are used to exchange ideas and are interchangeable. In the same way both Perl and C serve to be a tool to tell a computer what to do and are interchangeable - to a point, of course. Your example, although showing big difference between these two languages, doesn't prove that they can't be exchanged - in a same way as the word "overkill" (translated into Russian as "primenenie sredstv massovogo porazheniya izbytochnoy moshchnosti") doesn't prove that you can't express in Russian what you can in English, even though those expressions would look quite different.
From: [identity profile] tejblum.livejournal.com
Конечно же, любую (законченную) программу можно написать на любом языке программирования, в том числе и на Лиспе или ассеиблере машины MIX. (С подпрограммами в широком смысле слова сложнее; например, в придуманном Виртом Паскале нельзя написать подпрограмму, позволяющую отсортировать любой массив любым способом; а в придуманном Ритчи C делающая это функция qsort() пишется элементарно.). При таком подходе все языки программирования, а не только процедурные C[++], Перл, Джава, Бейсик, Паскаль, PL/1, Фортран, xBase, являются взаимозаменяемыми. Конечно, какие-то языки более похожи, какие-то менее, можно их как-то классифицировать, называя одни процедурными, другие функциональными, третии еще как-то; тем не менее разница между серьезными языками достаточно велика, чтобы ею пренебрегать (два дня на овладение). Я, кстати, не так уж уверен, что Перл больше похож на Фортран, чем на Лисп, например.

Date: 2002-08-08 08:36 am (UTC)
From: [identity profile] cema.livejournal.com
Конечно, perl -- процедурный язык. Но такой ли уж он "взаимозаменяемый" с другими процедурными языками, тем же C например?

Практически -- нет, конечно, а то бы на одном языке все и писали бы. (И это был бы C++...)

регэкспы -- довольно мощная программисткая идея, не имеющая никакого отношения к PCRE. Разница между PCRE и любой стандартной реализацией или между синтаксисом perl5 и синтаксисом POSIX 1003.2 -- всего лишь небольшой прогресс.

Regex я бы скорее отнёс к математике, ну да ладно. Разница же regex'ов в стиле Perl 5, допустим, и "обычных" всё же не сводится к синтаксису.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 05:33 pm
Powered by Dreamwidth Studios