tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
[personal profile] tim
A blog comment in response to an argument that writing a parser for Perl is Turing-complete:

"That's some mighty fine left brain thinking there( especially for a Monday morning ), but does it in anyway affect any practical aspect of Perl? Like can it be used to show that Perl is more or less reliable/secure? This isn't a criticism of your node, but I left college 35 years ago, and this sort of analysis seems very ivory-tower-ish to me now. It's sort of like saying 'one cannot prove self-existence'. Is the fact that Perl cannot parse itself a good or bad thing, or can other languages do it? Does that make them superior?"

Computer science is an intellectual and pragmatic failure. Kids, if you're looking for a good career, major in English.

(no subject)

Date: 2009-08-13 06:21 pm (UTC)
asrabkin: (Default)
From: [personal profile] asrabkin
I didn't have a particular Turing-complete type system in mind -- I knew that some research languages had that property, and that it wasn't considered a per-se crazy thing to do.

I don't actually see why "parsing is/can be as hard as evaluation" is necessarily a problem. This seems like one of those very loose lower bounds we get a lot in CS -- where some problem has very hard instances, but in practice, the instances we care about are generally OK.

This is certainly an implementational headache, and a limitation for people who want to do program analysis, but I don't see it as directly relevant users. This property limits the variety and power of perl-analysis tools, but if I was dissatisfied with the offerings out there, I shouldn't be using perl anyway.

(no subject)

Date: 2009-08-13 06:40 pm (UTC)
asrabkin: (Default)
From: [personal profile] asrabkin
Mm. I think if you're programming in perl, you probably already know that you won't have a lot of confidence in it. People joke about perl being a write-only language -- if you care about your program, and you expect to be maintaining it, you shouldn't be doing it in perl anyway, so the fact that it's hairy in a deep computational sense is maybe irrelevant, given that it's hairy and error-prone in every other way, too. It's sort of satisfying to know that the defects in perl really are deep and fundamental; but even the ephemeral and shallow defects are quite serious enough that anybody using perl for something critical should have their programming license revoked.

It's a language designed for knocking out short little scripty things, that probably only get run a handful of times. And yeah, certainly, nobody ought to design a language like perl in the future -- but precisely the problem with perl is that it grew by accretion.

(no subject)

Date: 2009-08-13 07:23 pm (UTC)
From: [identity profile] wkfauna.livejournal.com
It really is possible to write elegant, efficient and maintainable Perl. I've worked at two companies with very large codebases that fit this description.

Perl, however, is noob-friendly enough to allow even unskilled people to write programs that work, and also geek-friendly enough to allow people to run Perl golf contests. These two groups, IMO, give it an unfair write-only reputation.

(no subject)

Date: 2009-08-13 07:23 pm (UTC)
From: [identity profile] wkfauna.livejournal.com
One of the main selling points of Perl is its syntactic expressiveness. I don't think implementation sloppiness is the main reason why the grammar is undecidable.

(no subject)

Date: 2009-08-13 08:01 pm (UTC)
From: [identity profile] wkfauna.livejournal.com
Heh, no, because your "easily accomplished" clause is too broad (what's easy? what's another mechanism? does conciseness count? etc). But the example "whatever" clause in the original post is interesting and shows some features that are each either neat or horrible, depending on your point of view:
* passing args without parens
* implicit matching on $_ and the existence of $_
* void context and the lack of failure thereof

Anyway, I'm not here to argue for the beauty of the design of Perl, 'cause even I think it's horrible. There's certainly plenty of design and implementation sloppiness there to go around. One just has to look at the way sort works to be convinced of that (hint: it involves manipulating symbol tables).

Profile

tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (Default)
Tim Chevalier

November 2021

S M T W T F S
 123456
78 910111213
14151617181920
21222324252627
282930    

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags