Regular Expression 이 없었다면?

puaxx의 이미지

제가 PHP를 처음으로 프로그래밍을 시작했을때 정규표현식을 처음 접했었습니다.
뭐..이런것도 되는가 보구나 하고 그저 놀랄따름이었죠..별 개념도 없이 그냥 이렇게 하니 저렇게 되는구나 하고 막연히 사용해 왔었는데..

요즘은 생각해 보니 정규표현식이 프로그래머를 장수하게 해주는 생명의 도구라는것을 느끼게 됩니다. 제가 지금까지 여러가지 프로그램을 만들면서 이 정규표현식이 안쓰이는곳이 없었습니다. 윈도즈나 리눅스나 C나 PHP나 Perl이나 심지어 JavaScript까지..OS나 언어를 가리지 않고 이놈은 프로그램 만들때에는 꼭 필요했었습니다. 한때는 정말 이것이 어떻게 작동하는지 궁금해서 삽질도 많이 해봤습니다. 만일 이런게 없었다면 어땠을 까요?

갑자기 그냥 이런것들을 이룩해낸 그 누군가가 고맙기도 하고 존경스럽기도 해서 글을 써봤습니다. :-)

highwind의 이미지

없었다면
NFA나 DFA도 없었겠죠.. -_-;;

=====================================
http://timothylive.net

puaxx의 이미지

이거 저는 NFA, DFA 관련 문서를 봐도 정확한 이해를 못하겠더라구요. 이해가 안되니 코드로 구현하는것도 참 난감하던데... 머리가 나빠서 그런가;;

violino의 이미지

대학원 다니면서 보니깐 관련 과목만도 두 과목이던데요. Automata, Formal Languages..
제가 하는 일이 그런거랑 관련이 많아서 매일 삽질하고 있습니다.
그런 개념 만들고서 지금은 좌익 성향의 사회 참여에 열중중인 언어학자 노암 촘스키가 존경스럽구요.
(덕분에 언어학, 전산학 전공생들의 공적이 되어버렸죠. ㅋㅋ)

상관없지만, Context Sensitive parser를 만들어주는 툴은 뭐 없을까요?
기존의 Flex, Bison 으로 CF parser를 구현하곤 했는데,
프로그래밍 언어가 아닌 영어 문장을 Parsing 하는 프로젝을 생각중이거든요.
누구 혹시 아시는 분 없으신지..?

임창진의 이미지

Gema [http://gema.sourceforge.net/new/index.shtml]를 한번 사용해 보시죠 .
Gema에는Domain이란 개념이 있는데 이게 "Context Sensitive parser" 에 아이디어를 제공해줄 수 있을거 같습니다. kldp에서 제아이디로 검색해보면 Gema관련 자료를 얻으실 수 있습니다.

violino의 이미지

감사합니다. 한번 공부해봐야겠네요.

juneaftn의 이미지

Regexps are a brittle tool, best tolerated in small doses. --Tim Peters

Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems. ?Jamie Zawinski

puaxx의 이미지

What problems?

글쎄요.무슨 문제에 직면했는지는 말 안했나요?

juneaftn의 이미지

1. original problem
2. I know, I’ll use regular expressions

atie의 이미지

1. confronted with A PROBLEM
2. “I know, I’ll use regular expressions.” <-- NOW they have TWO PROBLEMs

정규식이 만능이 아니라는 뜻이던지, 혹은 제대로 쓰려면 쉽지가 않다는 뜻이겠군요. A PROBLEM이 무엇인지 궁금하기는 합니다. ^^
----
I paint objects as I think them, not as I see them.
Ubuntu Edgy user / Ubuntu KoreanTeam

----
I paint objects as I think them, not as I see them.
atie's minipage

Ooryll Qrygg의 이미지

1. the first problem = a problem
2. the second problem = regular expression

the author seemed to think that the regular expression is rather a problem than a solution. :)