창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


LIST ALL
Posted by 지상현2005-09-25 21:01:13, Hit : 4092
'작은우리어' 인데 의견 부탁합니다.
Homepage : http://ssidang.x-y.net
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=freeboard&no=2223
제가 오래전부터 생각해오던 “작은우리어” 라고 뭐 제 입맞에 맞게 어느 정도 제정한 것이 있거든요... 여하튼 저도 뭔가 하고 있긴 한데 ~_~

어젠 감이 좀 와서 새벽 3시까지 문법 잡고 구현 방법에 대해 노트를 좀 해놨는데 -.-






일단은 창조 문법을 기반으로 하되, C나 델파이도 좀 섞어가며 개량(?) 중입니다.



아래에 간단하게 확정 지은 문법만 나열했는데, 여러분들 보시고 의견 좀 말씀해주셨으면...^^;

1. 변수 선언
변수형식: 이름1, 이름2[=초기값];

변수 형식을 다음과 같이 세분화 했습니다.
괄호 안은 대응되는 C 형식이며, 변수의 크기를 비트 단위로 적었습니다.
unsigned/signed 는 변수가 가지는 부호 여부입니다.

정수(signed long, 32b), 작은정수(signed short, 16b)
양수(unsigned long, 32b), 작은양수(unsigned short, 16b), 바이트(unsigned char, 8b)
작은실수(float, 32b), 큰실수(double, 64b)
(char * 또는 string)

숫자라고 쓰면 정수라고 인식합니다.
소수라고 쓰면 작은실수라고 인식합니다.

잔리형은 따로 없고, 0 이면 거짓, 그 외의 값은 참으로 인식합니다.
= 1, 거짓 = 0 으로 상수가 정의되어 있습니다. 또한 = 0 도 정의되어 있습니다.


※signed char 형식을 넣을지 고려중입니다. 넣는다면 이름을 뭐로 해야 할지...
※큰정수, 큰양수(int64)는 고려중입니다.

먼저 가능한 명확한 뜻을 밝히고, 짧게 쓰는 것을 중점으로 두었습니다. 위 조건을 만족하는 범위에서 가능한 순한글만 쓰려고 합니다.

(=> 포인터, 구조체는 “새우리어” 라고 다른 언어로 지원할 계획)



2. 함수 선언
하나. 내부 함수
함수: 이름(변수형식1: 인자1, 인자2; 변수형식2: 인자3...)[: 반환형식] =
<
........함수 구현........
>

※반환 형식을 지정해주지 않으면, 반환값 없는 함수가 됩니다.
※지금은, 함수 본체와 머리 사이에 반드시 = 를 넣어야 합니다.
※함수 본체는 지금 <> 으로 감싸게 되어 있는데(세벌식 사용자 고려) {} 도 허용함. 단 이 경우 짝이 맞아야 한다. 예를 들어 <} 는 불법.

. 외부 함수(DLL 함수)
외부함수: 이름(변수형식1: 인자1, 인자2; 변수형식2: 인자3...)[: 반환형식] <"DLL파일이름", "DLL함수이름">;

이건 문법이 좀 특이할지도 모르겠지만...
일반 함수와 문법이 거의 같습니다. 차이점은 = 가 없고, 외부함수 라고 써주는 거 정도?

※내부 함수나 외부 함수는 내부적으로 stdcall 처럼 구현됩니다. cdecl 의 지원 여부는 저의 여유와 관계가 있습니다......



3. 연산자
*할당
왼쪽 = 오른쪽; // 오른쪽에서 왼쪽으로 값을 옮깁니다.

*산술 연산
기역+니은, 기역-니은, 기역*니은, 기억/니는, 기역%니은 // 각 연산 결과는 해당하는 연산 결과

*논리 연산
디읃 그리고 리을 // AND, '하고' 라는 키워드로 변경해볼까도 생각해봤지만...
디읃 또는 리을 // OR
아니 디읃 // NOT, '부정'보다 쓰기 타수가 더 적고 한글인 말로 택했습니다.

*비트 연산(오로지 정수 형식만!) ....... 비트 연산을 연산자로 승격시켰습니다.
미음 비읍 // 비트합, bOR 함수
미음 비읍 // 비트곱, bAND 함수
반전 미음 // 비트 반전, bNOT 함수
미음 배타합 비읍 // 비트 배타합, bXOR 함수
미음 << 비읍 // 비트 왼쪽으로 쉬프트, shl 함수
미음 >> 비읍 // 비트 오른쪽으로 쉬프트, shr 함수

*비교 연산
시옷 == 이응 // 두 값이 같은가? 같으면 참
시옷 != 이응 // 두 값이 다른가? 다르면 참
시옷 > 이응 // 시옷이 이응보다 큰가? 크면 참
시옷 < 이응 // 시옷이 이응보다 작은가? 작으면 참
시옷 >= 이응 // 시옷이 이응보다 같거나 큰가? 같거나 크면 참
시옷 <= 이응 // 시옷이 이응보다 같거나 작은가? 같거나 작으면 참

*형 변환(타입 캐스팅) ...... 수를문,문을수,문수,수문 함수를 대체하게 할 지 고려중
변수형식(변수) // 지정한 변수를 변수 형식으로 인식하게 합니다.

*특수한 연산자
주소(변수) // 변수가 있는 번지(주소값)을 구합니다.
함수주소(함수이름) // 함수의 시작 주소를 구합니다. 콜백 함수에 이용할 수 있습니다.




4. 키워드
*조건 분기
만일(조건)
    < ...뭔가 한다... >
아니면 만일(조건)
    < ...뭔가 한다... >
아니면
    < ...뭔가 한다... >

*조건 반복
되풀이(조건)
    < ...뭔가 한다... >

반복
    < ...뭔가 한다... > (조건) 까지// 조건과 '까지'의 위치가 바뀌었음

계속해(숫자셀변수, 조건, 더하거나빼는값)
    < ...뭔가 한다... >
// 예를 들어서
// 계속해(수, 수<10, 1) < 어쩌구 >
// 라고 한다면, 수 == 0 일 때 '수'에 1씩 더하며 '수<10' 인 동안, 즉 10번 실행된다. 다른 언어의 for 문과 같다.


*흐름 제어
다시; // 반복문의 처음부터 다시, continue 기능
그쳐; // 반복문을 빠져나감, break 기능
나가; // 함수를 빠져 나감, return 기능

*문자열 리터럴
"" 으로 감싸면 문자열로 인식한다.











헉헉... 힘드네요... 여하튼 기존의 우리어에서 추가/보완하는게 주 내용입니다.
여기서 빠진 구조체와 포인터, 배열, 그리고 객체지향같은 것은 새우리어에서 다시 다룰 겁니다. (구조체, 포인터, 배열, 객체지향은 포인터를 빼놓고 생각하기 어려우므로 한번에...)

여하튼 여기서 변수의 주소를 구하는 연산자를 만들어 둠으로써, 그간 애먹었던 포인터 논쟁에 어느 정도 해답을 줄 수 있을 것으로 보입니다.

그리고 이 언어에서는 프로그램의 시작점을 '창'이 아닌, 함수 시작():숫자 으로 정의하고 있습니다. 그러니까 앞으로 뭔가 만들려면, 반드시 '시작'이라는 함수가 필요합니다.
또 이 언어에서는 언어에서 딱히 지원하는 함수(런타임)는 지금 없습니다.
하지만 곧 표준 함수도 제정해야겠지요. (일단 콘솔 입출력, 파일 입출력 같은 것 부터......)

뭐 표준 함수가 지금은 하나도 없지만 API를 마음껏 쓸 수 있기 때문에 어느 정도 해먹을 수 있습니다. 그건 컴파일러가 나오면 예제로서 보여드리죠 ~_~



컴파일러는 틀만 잡혀있고 아직 아무것도 할 순 없지만, 언젠간 나올겁니다.
일단 컴파일러(링커 포함 ~_~)가 완성되면 마치 임근묵님의 '한글 플러스(한글 플러스 바로가기)' 같은 분위기의 프로그램을 만들게 될 겁니다.
뭐 통합편집환경은 멀었구요... 일단 txt 파일로 소스 코드 넘겨줘서 exe 만드는게 목표입니다.

만들게 되면, 각종 자료 공유할 생각이니 많은 도움 바랍니다~

권선중   2005-09-26 PM 2:57:46  
ㅎㅎ 멋지네요..비주얼툴이 아니군요..전 또 비주얼툴인줄..
qkrwhdgns   2005-09-26 PM 4:40:43  
비주얼 툴이 아니라면.. 조금.. 적응의 시간이 필요하겠네요^^ ㅋㅋ
그리고.. 작은우리어 만들면.. 창조 차기 버젼 베타버젼의 설치판에
넣어서 하면.. 좋겠네요 ㅋ
지상현   2005-09-26 PM 7:55:24  
비주얼툴 가능해요 ~_~
일단 API 몽땅 쓸 수 있으니, 편집기 정도 만들어주고 라이브러리(include 나 uses 할것이니...흐흠) 만들어서 쓰면...

말로 할 것이 아니라 어서 예제를 만들어 보여드리죠...후후...

차기 '새우리어'는 객체지향과 못다 지원한 것을 몽땅 지원해서 지금의 창조 수준의 것을 내놓을 생각인데...이건 실현할 수 있을지 잘 모르겠네요 ~_~
지상현   2005-09-26 PM 7:55:44  
음, 문법에 대해서는 별 말씀이 없으시니 이대로 일단 밀고 나가겠습니다~
LIST ALL               GO TO THE TOP


N
C
   Subject
Posted by
Date
H
76
   처음으로, 본컴에 윈도우비스타 설치 [2]
한수훈 2009/05/24  4575
75
   윈도우7, 새컴퓨터에 설치!! [16]
한수훈 2009/04/26  5360
74
   정확한 컴퓨터 사양 [6]
한수훈 2009/04/25  4242
73
   컴퓨터 받았습니다. ㅎㅎㅎ [6]
한수훈 2009/04/25  4329
72
   move_uploaded_file ....ㅇ
한수훈 2009/04/12  4695
71
   MSN 리스트에.. 에러.. [2]
한수훈 2009/01/24  4338
70
   이 그래픽카드 어떻게 처리 못할까요? [4]
한수훈 2008/12/06  4482
69
   바탕화면 바꾸는 소스 가지고 계신분..!
하얀종이 2002/11/21  4918
68
   마이크로 소프넷의 용어 해설
2002/12/13  4293
67
   놀라운 자바의 반복 속도.. ㅡㅡ;; [13]
최재일 2005/11/14  5682
66
   그냥 심심해서 cugz.com 도메인 정보를... [1]
최재일 2004/10/19  5734
65
   제로보드의 너무 강력한 검색 기능 -_- [3]
지상현 2007/06/19  4213
64
   우리어 사촌 깜짝 설문조사!!! [7]
지상현 2007/02/06  4524
63
   델파이 다룰 줄 아시는 분들!
지상현 2005/10/15  3904

   '작은우리어' 인데 의견 부탁합니다. [4]
지상현 2005/09/25  4092
61
   그냥... 구상만 해봅니다. [6]
지상현 2003/02/28  4023
60
   창조 구문은 델파이와 다릅니다 [6]
지상현 2003/02/26  5636
59
   구글... 그 위대함...[2] [7]
장규형 2006/11/28  4893
58
   손상진님~ 상진넷프로그램메뉴 다운로드가 다 깨진거같은.. [6]
이희창 2009/04/21  4083
57
   신창조 건의 [4]
이진백 2005/09/25  2657
56
   통합 프로그래밍 강좌를 올리다가 생각... [4]
이진백 2005/05/08  5532
55
   슈퍼컴? [5]
이정도 2006/01/19  4514
54
   커헐.....소스다날리다.; [3]
이시영 2004/02/10  3002
53
   오늘 찾은것들... [1]
이수호 2003/03/22  3984
52
   아즈망가 대왕 ! [7]
이수호 2003/02/03  4150
LIST ALL   1 [2][3][4] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인