왠만한 프로그램책에서 나오는 설명

babbab의 이미지

보통 프로그램은

판단 과 행동으로 되 있습니다.

판단은 ( condition ) // 컨디션 이고요. 컨디션은 5 > i ( 5 가 i 보다 크다 ) if나 switch가 보통 붙습니다. 5와 i 의 관계를 표현하는 부호로 나타 냅니다. relational operator
뭐가 뭐보다 나은지 비교 하는 거고요. 비교해서 판단 하는 거고,
컨디션에 대해 보충 설명을 붙입니다.
if를 빼면 ( condition ) 컨디션인데 컨디션이 질문일수도 있습니다.
(5 > i) 5가 i보다 크냐? 5와 i의 관계, 맞으면 사실 틀리면 거짓..
5 > 4 이것은 사실이다
5 > 6 이것은 거짓이다

행동은 언어에 있는 동사 입니다. // ~ 해라 예) 명령어

그 판단과 행동이 여러명에 적용되면 룹, 아니면 루프( loop )가 됩니다, 룹이 쓰입니다.
여러 갯수에 룹이 쓰입니다.
예) 여러개의 파일들 아니면 여러개의 자료들.

이건 쉘 스크립이든 프로그램언어이든 프로그램을 뭘로 표현하든 쓰일것 같습니다.

for i in file1 file2 file3 file4 ...  파일1 파일2 파일3 파일4 ... 에 해당 되는 i 마다 (반복문)
    if (emptyfile(i))                  i가 빈 파일이면
        print 빈파일입니다 지워주세요         빈파일.. 세요 를 출력해라

명령어(command line)로 쓰이는 도구가 언어인 관계로 gui (손가락질과 클릭) 보단 강력하고요.

현 unix 명령도 그렇게 자연스러운 영어 문법은 아닌것 같이 보입니다.

express your mind beautifully

표현해라 마음을 아름답게

현 unix 문법
express -beautifully your mind

내가 생각하는 자연스런 영어 문법
express file1 file2 -opt
명령 파일1 파일2 .. -옵션 (~하게)

sort file1 file2 numerically
정렬해라 파일1 과 파일 2를 숫자의 순차적으로

한글로 하면

파일1 과 파일 2를 숫자의 순차적으로 정렬해라
file1 file2 --numeric sort

정도 될것 같습니다.

이런 형태의 언어도 있습니다

명령실행
만약 ( 명령에대한 결과 == 오류 ) // 오류라고 판단되면
    에러코드 출력 아나면 오류에 대한 행동

뭐라도 도움이 되시길 바랍니다..

Forums: 
HDNua의 이미지

1. 아마 이 댓글을 읽으면 불쾌하실 거에요.

2.
>> 보통 프로그램은 판단 과 행동으로 되 있습니다.
>> 판단은 ( condition ) // 컨디션 이고요. 컨디션은 5 > i ( 5 가 i 보다 크다 )
>> if나 switch가 보통 붙습니다. 5와 i 의 관계를 표현하는 부호로 나타 냅니다. relational operator
>> 뭐가 뭐보다 나은지 비교 하는 거고요. 비교해서 판단 하는 거고,
2-1) 문장을 정리하는 방법을 배우셔야 할 것 같습니다.
"판단은 무엇이다"라는 것을 설명하기 위해 5와 i, 부등호를 이용하셨는데,
이 문장을 설명하려는 목적이라면 보통 이런 식으로 씁니다.
(판단의 예로는 (5 > i)가 있습니다. 이는 5와 i의 관계를 부호로 나타낸 것입니다. 앞에 보통 if나 switch가 붙습니다.)

그리고 모든 조건식이 위와 같은 형식을 갖추고 있지는 않습니다. Assembly라는 언어는 조건식이 이렇게 생겼어요.

cmp eax, 0                 ; eax 변수와 0을 비교. 서로 같으면 zero flag가 1
jnz _else                  ; zero flag가 0이면 _else로 점프
...                        ; eax == 0일 때의 루틴
jmp _endif                 ; eax == 0일 때의 루틴이 끝나고 조건문 바깥으로 jump
_else:                     ; else 블록을 표시하는 레이블
...                        ; eax != 0일 때의 루틴
_endif:                    ; 조건문 바깥을 표시하는 레이블
...                        ; 조건문 이후의 루틴

뭐가 뭐보다 나은지 비교한다는 설명도 옳지 않습니다. 비교는 단순히 논리 또는 산술 비교일 뿐
어느 것이 어떤 기준으로 낫거나 낫지 않다고 평가하는 것이 아닙니다.

>> 행동은 언어에 있는 동사 입니다. // ~ 해라 예) 명령어
>> 그 판단과 행동이 여러명어 적용되면 룹, 아니면 루프( loop )가 됩니다
>> 예) 여러개의 파일들 아니면 여러개의 자료들.
2-2) 룹과 루프는 서로 같은 단어지요?
그리고 예시로 든 "여러 개의 파일과 여러 개의 자료들"은 '행동'이라는 단어를 설명할 수 없습니다.

>> 이건 쉘 스크립이든 프로그램언어이든 프로그램을 뭘로 표현하든 쓰일것 같습니다.
2-3) 비전문가가 문서를 읽지 않고 "쓰일 것 같다"라고 넘겨짚는 건 굉장히 위험한 행동입니다.
사실 무슨 말씀인지도 잘 이해를 못하겠구요.

>> for i in file1 file2 file3 file4 ... 파일1 파일2 파일3 파일4 ... 에 해당 되는 i 마다 (반복문)
>> if (emptyfile(i)) i가 빈 파일이면
>> print 빈파일입니다 지워주세요 빈파일.. 세요 를 출력해라
2-4) 이 예제 코드는 무엇을 말씀하시려는 건가요?

>> 명령어(command line)로 쓰이는 도구가 언어인 관계로 gui (손가락질과 클릭) 보단 강력하고요.
2-5) 프로그램이 행동/판단으로 이루어져있다는 것과, GUI 방식에 비한 Command Line의 우월성은 전혀 연관성이 없습니다.

>> 현 unix 명령도 그렇게 자연스러운 영어 문법은 아닌것 같이 보입니다.
>> express your mind beautifully
>> 표현해라 마음을 아름답게
>> 현 unix 문법
>> express -beautifully your mind
>> 내가 생각하는 자연스런 영어 문법
>> express file1 file2 -opt
>> 명령 파일1 파일2 .. -옵션 (~하게)
>> sort file1 file2 numerically
>> 정렬해라 파일1 과 파일 2를 숫자의 순차적으로
>> 한글로 하면
>> 파일1 과 파일 2를 숫자의 순차적으로 정렬해라
>> file1 file2 --numeric sort
2-6) 반박하고 싶은데 unix 명령을 따로 배우지 않아서 할 수가 없네요.
일단 명령은 영어 단어를 쓰지만 반드시 문법에 자연스럽게 해야 한다는 법도 없습니다.
프로그램을 실행하기 위해 가장 좋은 방식으로 인자를 전달하는데, 그게 꼭 영어 문법에 맞아야 하는 게 아니라는 뜻입니다.

3. 첫 번째 문장을 포함하여 맞춤법 오류 또는 문법적으로 이상한 문장이 곳곳에 보입니다. 정말 신경쓰여요.
(되 -> 돼 or 되어)
(왠만한 -> 웬만한)
...

4. 2-3에서 말씀드렸듯, 비전문가가 막연히 이러할 것이라고 하는 것은 전공자들에게는 아무 의미가 없습니다.
정공학을 더욱 열심히 공부하시는 편이 바람직해보입니다.

사실 전 "JSCC: JavaScript로 개발하는 C Compiler"라는 프로젝트를 만든 적이 있습니다.
상식적으로 C Compiler는 당연히 JavaScript로 개발할 이유가 없고 저 또한 장난 삼아 만들기 시작했는데,
개발 기간이 늘어나고 주워들은 것이 많아지다보니 이게 정말 뭔가 되겠구나 싶은 마음에 교수님을 찾아뵈었어요.
결과는 당연히 참담했습니다.

그냥 그런 생각이 들어서, 이런 댓글을 달면 당연히 마음 아프시겠지만,
자신의 생각이 정말 유용한 것인지, 누군가는 객관적으로 평가를 해야만 합니다.
그렇지 않으면 우물 안 개구리가 되어버리니까요.

너무 모욕적으로 받아들이지 않으셨으면 합니다.

저는 이렇게 생각했습니다.

babbab의 이미지

이건 제가 새롭게 제가 만든것도 아니기 때문이죠.
commandline이 언어를 도구로 사용되고 있지않았나 하는거나 unix가 영어문에도 자연스럽지 않다는것 말곤. 제가 읽는 c programming에 처음 몇 장에 나와있는 것입니다. 근데 그전부터 알고있었다, 아니면 알고 있는거랑 잘못됬다라고는 않들립니다.

이건 코드가 않입니다. 코드가 아닌 그냥 한글로 프로그램은 판단하며 행동하는데
그걸 반복적으로 한다고 얘기할수도 있습니다. 그냥 쉘스크립에도 널리 쓰이는 스크립의
형태입니다. 쉘스크립, 배치 사용될수 있고 프로그램잉에도 사용될수 있습니다.

위험하다 하신것은 오버하신것 같습니다. 전혀 위험하지 않습니다.

언어가 자연스워되지 않아도 된다에 대한 제의 의견은 정 반대입니다. 제 생각은 명령어는 최대한 자연스럽게 언어 처럼 읽혀져야 되다 입니다. literate programming이란 책도 있습니다.
프로그램을 책처럼 자연스럽게 읽습니다.

저는 프로그램잉 공부하는 사람은 아니지만 즐겂게 책을 읽습니다. 어쩄건 뭐 저보다 전문적인것 같습니다. 자바 스크립으로 씨 컴파일러를 만드신데니

HDNua의 이미지

1.
>> 이건 제가 새롭게 제가 만든것도 아니기 때문이죠.
>> commandline이 언어를 도구로 사용되고 있지않았나 하는거나
>> unix가 영어문에도 자연스럽지 않다는것 말곤.
>> 제가 읽는 c programming에 처음 몇 장에 나와있는 것입니다.
>> 근데 그전부터 알고있었다, 아니면 알고 있는거랑 잘못됬다라고는 않들립니다.
"알고 있었다, 알고 있는 거랑 잘못됐다" 이 부분은 무슨 말인지 모르겠습니다.

>> 이건 코드가 않입니다. 코드가 아닌 그냥 한글로 프로그램은 판단하며 행동하는데
>> 그걸 반복적으로 한다고 얘기할수도 있습니다. 그냥 쉘스크립에도 널리 쓰이는 스크립의
>> 형태입니다. 쉘스크립, 배치 사용될수 있고 프로그램잉에도 사용될수 있습니다.
2-4에서 예제 코드라고 부른 부분을 설명하신 것 같은데, 이렇게 실제로 동작하지는 않지만 코드와 비슷한 형태를 하고 있는 것을 의사 코드(pseudo-code)라고 합니다. 가짜 코드라는 뜻으로요. 자기 생각을 보다 이해하기 쉽도록 자연어로 풀어서 써놓은 것이죠.
제가 궁금했던 건, 그 의사 코드는 어떤 것을 설명하기 위한 것인지였습니다.

>> 위험하다 하신것은 오버하신것 같습니다. 전혀 위험하지 않습니다.
인정합니다.

>> 언어가 자연스워되지 않아도 된다에 대한 제의 의견은 정 반대입니다.
>> 제 생각은 명령어는 최대한 자연스럽게 언어 처럼 읽혀져야 되다 입니다.
>> literate programming이란 책도 있습니다.
>> 프로그램을 책처럼 자연스럽게 읽습니다.
명령어는 최대한 자연스럽게 읽혀야 한다, 분명 맞는 말씀입니다.
다만 프로그램을 실행하기 위해 명령을 전달할 때, 문법에 꼭 맞게 만들려면
명령 자체를 분석하는 데 시간이 더 걸리기도 합니다. 이런 건 낭비지요.
그런 뜻으로 적은 말이었습니다.

>> 저는 프로그램잉 공부하는 사람은 아니지만 즐겂게 책을 읽습니다.
>> 어쩄건 뭐 저보다 전문적인것 같습니다. 자바 스크립으로 씨 컴파일러를 만드신데니
제 글을 다시 읽어보니 비전문가 전공자 같은 단어를 좀 막 썼네요.
불쾌할 것도 없다고 하셨지만, 상대를 비전문가라고 단정하고 내리깎는 식으로 댓글을 남겼는데
혹시 이에 대해 기분이 나쁘셨다면, 죄송하다는 말씀을 드리고 싶습니다.

2. [맞춤법 오류]
잘못됬다 -> 잘못 됐다
않들립니다 -> 안 들립니다
않입니다 -> 아닙니다
자연스워되지 -> 자연스럽지
읽혀져야 되다 -> 읽혀야 된다
즐겂게 -> 즐겁게

사실 "않입니다" 정도는 좀 심한 맞춤법 오류라..
애초에 한국에서 생활을 안 하셨던 것인지 하는 생각이 듭니다.

저는 이렇게 생각했습니다.

babbab의 이미지

>> 다만 프로그램을 실행하기 위해 명령을 전달할 때, 문법에 꼭 맞게 만들려면
>> 명령 자체를 분석하는 데 시간이 더 걸리기도 합니다. 이런 건 낭비지요.

(주제랑 상관없이) >> 는 유즈넷을 떻오르게 하네요

그럼

01100011101010101010

이렇게 명령을 전달하는게 낮나요?

아니면

while()
    if;
        exec;

이게 낮나요?

아니면

~가 사실일 경우, 만약 그렇다면, 이걸 실행해라

가 낮나요?

어차피 컴퓨터의 일입니다. 컴퓨터에게 명령을 분석하도록 일을 시키십쇼. 요즘 컴퓨터는 성능에 비해 그 속도와 용량이 충분히 쓰이지도 않습니다.

HDNua의 이미지

문맥으로 봐선 자연어인 3번 코드를 제일 '낫'다는 답을 원하셨을 것 같은데,
저는 이 경우 2가 '낫'다고 생각합니다.
1은 이해하기가 너무 힘들고, 3은 너무 길지요.

기호는 처음 볼 때는 이해하기 힘들지만, 익숙해지면 글자 수를 줄일 수 있습니다.
성능을 생각하지 않더라도, 글자 수가 줄어든다는 건 쳐야 하는 글자의 수가 줄어든다는 것이고
프로그래밍처럼 키보드를 계속 두드리는 일에서 손을 훨씬 덜 피로하게 만들 수 있지요.

저만 그런지 모르겠는데 가독성 측면에서도 2가 훨씬 보기 편하지 않나요?
조건이 복잡해지면 코드만 복잡해지는 게 아니라 조건을 설명하는 글도 복잡해지는데
그럼 결국 거기서 거기입니다. 상황이 복잡해지건말건 2가 보기 편하다는 것이 변하지 않지요.
수학자들이 괜히 ∀나 ∃같은 기호를 만들어낸 게 아니고,
"∃x (x(x-1)=0)"이 이해하기 어려운 문장이 아니듯이 말입니다.

자연어 대신 기호를 쓰는 걸 꼭 나쁘게 볼 필요가 없습니다.

저는 이렇게 생각했습니다.

babbab의 이미지

한글대신 영어단어이고 단어의 순차만 빼고요...

babbab의 이미지

.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.