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


LIST ALL
Posted by 지상현2005-09-25 21:01:13, Hit : 4093
'작은우리어' 인데 의견 부탁합니다.
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
51
   슈퍼컴? [5]
이정도 2006/01/19  4516
50
   아름다름 소프트[창조 제작사] 예전 홈페이지 입니다. [5]
이기원 2005/11/22  6045
49
   갑자기 떠오른 생각... [10]
손상진 2005/11/15  4255
48
   놀라운 자바의 반복 속도.. ㅡㅡ;; [13]
최재일 2005/11/14  5684
47
   서버 패키지(?) [25]
qkrwhdgns 2005/10/24  3274
46
   내일 배포문제..(운영자/남상기님 필독하세요) [13]
박재성[날개달기] 2005/10/22  2258
45
   델파이 다룰 줄 아시는 분들!
지상현 2005/10/15  3904

   '작은우리어' 인데 의견 부탁합니다. [4]
지상현 2005/09/25  4093
43
   신창조 건의 [4]
이진백 2005/09/25  2657
42
   하핫~ 창조 덕에(?).. 델파이 다루다..(초보..) [4]
qkrwhdgns 2005/06/29  3288
41
   구글 adsense에 관한 여러분의 의견을 듣고 싶습니다.. [10]
변혁수 2005/06/12  3842
40
   벌써 3년... [4]
손상진 2005/06/12  4272
39
   우리나라의 백신들.. [11]
qkrwhdgns 2005/06/11  4711
38
   파노라마... [3]
손상진 2005/06/05  4495
37
   통합 프로그래밍 강좌를 올리다가 생각... [4]
이진백 2005/05/08  5534
36
   심심해서 만들어본^^;; [1]
손상진 2005/01/31  4546
35
   어느 정도 나아졌으나 [5]
ps.이진백 2005/01/19  4130
34
   압박... #2 [7]
ps.이진백 2005/01/13  5123
33
   델파이 말썽입니다 [2]
ps.이진백 2004/11/19  5751
32
   XPlanet 깔아봤음!.. 멋찌네요~^^ [4]
손상진 2004/10/31  4437
31
   format C: 의 시기가 다가옵니다. [3]
ps.이진백 2004/10/30  4244
30
   그냥 심심해서 cugz.com 도메인 정보를... [1]
최재일 2004/10/19  5734
29
   HTML Help Workshop API 잔뜩 구했습니다. [1]
ps.이진백 2004/09/11  4275
28
   램왔음~ [8]
손상진 2004/09/10  4413
27
   안쓰는 오디오 를 사용한.. 4.1채널 스피커 시스템 구축 완료 ㅋㅋㅋ [6]
손상진 2004/09/04  5448
LIST ALL   Prev [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이희철
로그인