'etc'에 해당되는 글 66건

  1. 2010.10.13 시스템 함수
  2. 2010.10.13 Blue Orange OP Code
  3. 2010.09.17 컴파일러 만드는 중 (Blue Orange) (2)
  4. 2010.05.24 텍스트 기반 Network Programming 설계 (1)
  5. 2010.05.23 About me & Contact
  6. 2010.03.29 SVN Global Ignore Pattern

시스템 함수

etc 2010.10.13 16:47
OP Code에서 바로 실행할 수 있는 함수들 목록 입니다.
이 페이지는 컴파일러 제작 과정 중에 지속적으로 변경될 것 입니다.
(취미 생활로 만드는 거라, 몇 년이 걸릴 수도 있음 ㅡ.ㅡ)
  • 그래픽 관련
    • Clear : 화면소거
    • GetScreenWidth : 화면 넓이 구하기
      • ResultNumber
    • GetScreenHeight : 화면 높이 구하기
      • ResultNumber
    • SetPen ...
    • SetBrush ...
    • DrawLine
    • DrawCircle
    • DrawRectanlge
    • etc
  • 텍스트 관련
    • TextOut X, Y, 텍스트(문자열) : 화면에 문자열 출력
    • SetFont 폰트이름 : 폰트 지정
    • SetFontSize 폰트크기 : 폰트 크기 지정
    • SetFontColor 컬러(문자열) : 폰트 색상 지정
    • etc
  • 수학 관련
    • Pi, Sin, Cos, Tan, ArcSin, ArcCos, ArcTan
    • Ln, Log, Exp
    • SQRT
    • etc
  • 문자열 관련
    • NumberToStr Number : 숫자형 변수를 문자열로 변경
    • BooleanToStr Boolean : 불린형 변수를 문자열로 변경
    • Pos, StringReplace ...
    • etc


'etc' 카테고리의 다른 글

계산기  (0) 2010.10.27
영풍문고의 서비스  (0) 2010.10.14
시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24

Posted by 류종택

Blue Orange OP Code

etc 2010.10.13 16:37
OP 코드라고 하지만, 쉽게 읽을 수 있는 가벼운 인터프린터형 언어라고 보면 됩니다.
초기 컴파일러를 테스트하기 위해서 설계하였습니다.
컴파일러가 완성되면 플래시 등으로 플랫폼을 옮겨갈 예정입니다.
모든 코드는 대소문자 구별이 없습니다.
  • 변수 선언
    • Boolean (변수이름)
    • String (변수이름)
    • Number(변수이름) : double
    • 사용자 변수는 언더바(_)로 시작하며, 시스템 변수는 언더바로 시작할 수 없다.
  • 시스템 변수
    • ResultBoolean, ResultString, ResultNumber : 연산 이후 결과를 저장
    • ReturnBoolean, ReturnString, ReturnNumber : 함수 호출 이후 결과를 저장
  • 연산
    • 이항연산
      • Plus (변수/데이터) (변수/데이터)
      • Minus (변수/데이터) (변수/데이터)
      • Mul (변수/데이터) (변수/데이터)
      • Div (변수/데이터) (변수/데이터)
      • Mod (변수/데이터) (변수/데이터)
    • 단항연산
      • Inc (변수)
      • Dec (변수)
    • 문자열 연산
      • Cat (변수/데이터)
      • Length (변수/데이터)
      • CharAt (인덱스)
    • 논리연산
      • Equal (변수/데이터) (변수/데이터)
        • Number의 경우에는 문자열로 변경한 후 비교하도록 한다.
      • Big (변수/데이터) (변수/데이터)
      • Small (변수/데이터) (변수/데이터)
      • Not (변수/데이터)
  • 조건문
    • If (변수) (OP Code)
      • 문자의 경우 문자열의 길이가 0보다 크면 true
    • IfNot (변수) (OP Code)
  • 함수 호출
    • Call (함수이름) [인수1, 인수2 ...]
  • 스택
    • Push (변수/데이터)
    • POP (변수)
    • POP : 버리기
    • Peek (변수)
    • Peek (변수, 인덱스) : 인덱스 만큼 깊은 곳의 자료를 인출
  • 기타
    • // : 주석
    • Const (상수이름) (데이터)
    • @라벨이름
    • Jump @라벨이름
    • Move (변수/Data) to (변수)

'etc' 카테고리의 다른 글

영풍문고의 서비스  (0) 2010.10.14
시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24
About me & Contact  (0) 2010.05.23

Posted by 류종택
몇 일간 열심히 일하다가, 또 다시 의욕상실 ㅡ.ㅡ

자꾸 머리에 떠돌길래, 예전부터 만든다 만든다 하고 미뤄둔,
컴파일러를 만들어 버렸습니다 ㅡ.ㅡ;;
(일단 로봇 제어용 언어 형식으로 만들고 있습니다)

Lex/Yacc가 생성한 코드는 영 맘에 안들어서 아예 모든 건 순수 코딩으로 ㅡ.ㅡ;;
(일단 전체 코드가 깔끔한게 제 맘에 쏙 듭니다 ^^*)

문법도 내 맘대로 ㅋㅋ
언젠가 시간이 되면 함수, 구조체, 클래스 모두 지원하는 언어를 만들어 볼랍니다.

아래는 컴파일한 예,
쉽게 컴파일 결과를 이해하기 위해서, OP Code도 제가 직접 만들어 버렸습니다.
x86 또는 플래시를 대상으로 고민을 했지만, 역시 일단 내 맘대로 만드는게 편해서.
OP Code가 전혀 일반적이지 않습니다 ㅋㅋ

추후, 플래시나 안드로이드 플랫폼에 올려보고 싶네요 ^^*
아래는 종태기가 새로 만들고 있는 언어, Blue Orange의 샘플 코드

[Code delphi]program My_First_Program;

repeat
  Go 5;
  Turn Left;
  Go 5;
for 4 times;

end.[/Code]

Repeat Something for n times;  
// 이것 때문에 for 루프문의 표현이 달라졌음.
// 그래도 읽기에 편안한 구조라 일단 이렇게 결정.  times도 단수일 경우 time으로 할까도 고민 ㅡ.ㅡ;;

컴파일러를 통해서 생성된 어셈코드
(Left, Right, Around는 일단 내장 상수로 취급하였음)

[Code delphi]// Program My_First_Program

Const Left 0
Const Right 1
Const Around 2

// Repeat Start
Number Count18
Move 4 to Count18
@RepeatStart18
IfNot Count18 Jump @RepeatEnd18
Dec Count18
Call Go 5
Call Turn Left
Call Go 5
Jump @RepeatStart18
@RepeatEnd18[/Code]

'etc' 카테고리의 다른 글

시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24
About me & Contact  (0) 2010.05.23
SVN Global Ignore Pattern  (0) 2010.03.29

Posted by 류종택
▶ 패킷 구조 설계
[Code]
Code=CodeName
ParamName1=ParamValue1
ParamName2=ParamValue2
ParamName3=ParamValue3
...
[/Code]
  • 위와 같은 구조는 델파이의 TStrings 기반 클래스를 통해서 쉽게 Encoding/Decoding 할 수 있습니다.
  • 개발자가 쉽게 패킷을 읽을 수 있어서, 디버깅하기가 쉽습니다.

[Code delphi]
procedure TMagaCastTextServer.sp_Login(UserID,Password:string);
var
  Packet : TStringList;
begin
  Packet := TStringList.Create;
  try
    Packet.Values['Code'] := 'Login';
    Packet.Values['UserID'] := UserID;
    Packet.Values['Password'] := Password;
    Send(Packet);
  finally
    Packet.Free;
  end;
end;
[/Code]
  • 패킷을 전송하기 위해서 Encoding 하는 과정의 예입니다.

[Code delphi]
procedure TfrChat.rp_UserIn(APacket: TStringList);
begin
  ShowNotice(APacket.Values['UserID'] + ' 님이 입장하였습니다.');
end;
[/Code]
  • 패킷을 수신한 이후 Decoding 하는 과정의 예입니다.


▶ 패킷 전달의 형태



▶ 패킷 의존성 설계



▶ 패킷 흐름 설계

'etc' 카테고리의 다른 글

시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24
About me & Contact  (0) 2010.05.23
SVN Global Ignore Pattern  (0) 2010.03.29

Posted by 류종택

About me & Contact

etc 2010.05.23 00:59



이름
: 류종택


출신학교
  • 후암초등학교 → 한남초등학교 → 보광초등학교 → 상원초등학교 → 반포초등학교
    • 초등학교 동문 숫자만큼은 부족함이 없다 ㅡ.ㅡ;
  • 방배중학교
  • 상문고등학교
  • 인하대학교 금속공학과 88 학번

직업 : 프로그래머 
  • 멀티미디어 전문 (가끔 강의나 컨설팅)
    • 화상 강의 프로그래밍
    • 네트워크 프로그래밍
  • 주 사용 언어 : 델파이 (Delphi)
  • 보조 언어 : C, C++, Java 
  • 가끔 쓰는 언어: C#, PHP
  • 어쩌다 한 번 쓰는 언어: Swift, Object-C

etc



'etc' 카테고리의 다른 글

시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24
About me & Contact  (0) 2010.05.23
SVN Global Ignore Pattern  (0) 2010.03.29

Posted by 류종택

SVN Global Ignore Pattern

etc 2010.03.29 21:06
SVN 사용할 때,
무시해도되는 확장자 모음입니다.

Delphi & Visual Studio
Debug Release Win32 Win64 __history *.~* *.dcu *.exe *.dll *.local *.identcache *.drc *.map *.zip *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~ #*# .#* .*.swp .DS_Store *.rsm *.ipch *.ocx *.sdf ipch

기타
__history *.~* *.dcu *.local *.identcache *.drc *.map *.zip *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store thumbs.db Thumbs.db *.bak *.class *.ap_ *.exe *.dll *.mine *.obj *.ncb *.lib *.log *.idb *.pdb *.ilk *.msi* *.pch *.suo *.exp *.*~ *.~* ~*.* release Release debug Debug ignore Ignore bin Bin obj Obj *.csproj.user *.user *.rsm *.ipch *.so.[0-9]* *.a *.pyc *.pyo __pycache__ Win32 Win64 *.sdf ipch
 


'etc' 카테고리의 다른 글

시스템 함수  (0) 2010.10.13
Blue Orange OP Code  (0) 2010.10.13
컴파일러 만드는 중 (Blue Orange)  (2) 2010.09.17
텍스트 기반 Network Programming 설계  (1) 2010.05.24
About me & Contact  (0) 2010.05.23
SVN Global Ignore Pattern  (0) 2010.03.29

Posted by 류종택


티스토리 툴바