2018년 6월 11일 월요일

AI - 준비단계 스크립트파서 - 변수검사

한이터 백승기의 AI준비 단계 

스크립트 소스는 프로그램에서 다음과 같이 입력해서 사용합니다.현제 편집기를 만들예정이 없습니다.만일 사용한다면 이미 있는것을 사용할 것입니다.
gRTN.demo(""  // --> 제가 작성한 소스의 원본이고 내용은 함수 안에서 처리합니다.
"struct one1 begin;"
"int A,B,C;" // 정수:초기화 -> to int array
"str D,E;"   // 문자열:길이 -> to CString Array
"num F,G;" // FLOAT NUMBER  -> to double
"end;"
);

소스리스트 출력 -> 줄번호를 붙여서 정리함
[source list begin]
[0000] struct one1 begin
[0001] int A,B,C
[0002] str D,E
[0003] num F,G
[0004] end
[source list end]

각각 단어를 파싱해서 기억하고 출력함 --> 확인하기위해 출력할때 [ .. ] 형태롤 만든 -> 디버그용이므로 삭제 예정 [struct] [one1] [begin]
 [int] [A] [B] [C]
 [str] [D] [E]
 [num] [F] [G]
 [end]

--> 구조체 시작과 종료를 확인하고 마킹을 해줌 <BEGIN STRUCT><END STRUCT>--> 각변수를 용도별로 확인하고 마킹함 <INT> ,<STR> ,<NUM>  [struct]<BEGIN STRUCT>
 [one1] [begin]
 [int]<INT>
 [A] [B] [C] [str]<STR>
 [D] [E] [num]<NUM>
 [F] [G] [end]<END STRUCT>
--> 다음에 변수처리 로직을 정리한 후 할당과 출력을 작성할 것입니다.

2018년 6월 5일 화요일

AI 개발 준비단계 - 스크립트언어 검토

이전(20년전)에 작성했던 컴파일러 프로그램과 실행결과 합니다.이전에 한번 전체 소스코드를  OPEN한 적이 있지만 별관심을 얻지 못했습니다.이제 지금 인공지능 대화 프로그램을 개발하면서 가장 필요한것이 자체 컴파일러 이더군요파이선과 같은 프로그램이 있어야 할것 같아서나름 전용 스크립트 컴파일러를 만들기위해 검토중입니다.20년전에 단 일주일만에 개발했던 스크립트 컴파일러 소스코드를 다시보니 느낌이 다릅니다.이 언어는 어셈블러 수준의 낮은수준의 프로그램입니다.이제 조금은 고급 근처에 같은 개발툴을 만들생각입니다.
==> 다음코드는 초-중급개발자 수준이상이면 누구나 만들수 있는 스크립트 언어 입니다.        어렵지는 않을 것입니다.
[1] [스크립트 소스코드]
LABEL  REPEAT, TOP
EXTERN PRINT_LINE
struct DREAM
I   INT
A   INT
B   INT
SUM INT
e_struct
DREAM X


VAR TOTAL, I
VAR MYS
STR NAME 20

TITLE "NEW 구구단"
TITLE "NEW 구구단"
TITLE "NEW 구구단"
TITLE "NEW 구구단"
LINESKIP

SET X~I, 0
SET X~B, 0

:TOP
SET   I, X~B
ADD   I, 1
PRINT "  ", I, " DAN TABLE   "
LINESKIP


: REPEAT
ADD X~I, 1

SET X~SUM, X~B
ADD X~SUM, 1
CALL PRINT_LINE

SET X~SUM, X~B
ADD X~SUM, 2
CALL PRINT_LINE

SET X~SUM, X~B
ADD X~SUM, 3
CALL PRINT_LINE

LINESKIP

IF X~I < 9 GOTO REPEAT
LINESKIP

SET X~I, 0
ADD X~B, 3

IF X~B < 9 GOTO TOP
SET X~I, 0
DELAY 100
IF 1 < 9 SHELL notepad.exe
SET MYS,991
CALC TOTAL=MYS+5*(10+1)  ;@--> 이부분을 추가 해보면서  변수 할당구조를 만드는데 적합하지 않다고 생각했습니다. --> 그래서 새로 만들것입니다.
PRINTLN "TOTAL = ", TOTAL
PRINTLN "MYS = ", MYS
END.

FUNCTION PRINT_LINE
SET TOTAL, X~SUM
MUL TOTAL, X~I
PRINT  "|", X~SUM:2, " * ", X~I : 2, " = ", TOTAL : 2
RETURN

TOTAL Byte 0 
[2] [실행결과 입니다.]
RUN=
BEGIN
NEW 구구단NEW 구구단NEW 구구단NEW 구구단
  1 DAN TABLE
| 1 *  1 =  1| 2 *  1 =  2| 3 *  1 =  3
| 1 *  2 =  2| 2 *  2 =  4| 3 *  2 =  6
| 1 *  3 =  3| 2 *  3 =  6| 3 *  3 =  9
| 1 *  4 =  4| 2 *  4 =  8| 3 *  4 = 12
| 1 *  5 =  5| 2 *  5 = 10| 3 *  5 = 15
| 1 *  6 =  6| 2 *  6 = 12| 3 *  6 = 18
| 1 *  7 =  7| 2 *  7 = 14| 3 *  7 = 21
| 1 *  8 =  8| 2 *  8 = 16| 3 *  8 = 24
| 1 *  9 =  9| 2 *  9 = 18| 3 *  9 = 27

  4 DAN TABLE
| 4 *  1 =  4| 5 *  1 =  5| 6 *  1 =  6
| 4 *  2 =  8| 5 *  2 = 10| 6 *  2 = 12
| 4 *  3 = 12| 5 *  3 = 15| 6 *  3 = 18
| 4 *  4 = 16| 5 *  4 = 20| 6 *  4 = 24
| 4 *  5 = 20| 5 *  5 = 25| 6 *  5 = 30
| 4 *  6 = 24| 5 *  6 = 30| 6 *  6 = 36
| 4 *  7 = 28| 5 *  7 = 35| 6 *  7 = 42
| 4 *  8 = 32| 5 *  8 = 40| 6 *  8 = 48
| 4 *  9 = 36| 5 *  9 = 45| 6 *  9 = 54

  7 DAN TABLE
| 7 *  1 =  7| 8 *  1 =  8| 9 *  1 =  9
| 7 *  2 = 14| 8 *  2 = 16| 9 *  2 = 18
| 7 *  3 = 21| 8 *  3 = 24| 9 *  3 = 27
| 7 *  4 = 28| 8 *  4 = 32| 9 *  4 = 36
| 7 *  5 = 35| 8 *  5 = 40| 9 *  5 = 45
| 7 *  6 = 42| 8 *  6 = 48| 9 *  6 = 54
| 7 *  7 = 49| 8 *  7 = 56| 9 *  7 = 63
| 7 *  8 = 56| 8 *  8 = 64| 9 *  8 = 72
| 7 *  9 = 63| 8 *  9 = 72| 9 *  9 = 81

TOTAL = 81
MYS = 991

END of YOUR PROGRAM
CREATED by XBSK(Baek Seung Ki)

END
[3] 나름 메뉴얼
    제목: 틀 언어  rt BASIC
CRtoken.cpp : implementation file
    만든이: 백승기

    아래: 사용가능한 명령을 설명한것입니다.

    코드: 하나의 명령어는 무조건 4바이트이며 모든 정수, 상수, 주소,
등도 4byte로 설정된 미래형 언어이다.  이젠 그저그렇습니다,

    변수: 4byte정수만을 사용한다.
프로그램에 선언된 곳이 자동적으로 VAR영역으로 할당한다.
    상수: 4byte정수만을 사용한다.
프로그램에 선언된 곳에 상수영역으로 설정한다.

    ;struct / e_struct 스트링 변수: 선언된 곳에 그길이만큼의 영역을 확보한다.
    스트링상수 :              위와 동일함

    LABEL: JUMP할 번지를 미리 선언한다.
LABEL A B
:A
:B

    GOTO : 선언된 곳을 JUMP한다.
:A
GOTO A

    IF  : 변수및 상수를 서로 비교해서 그결과로 다음명령을 수행한다.
가능한명령 : GOTO,
SET B=1
SET A=1
IF B=A GOTO A

    END  프로그램의 끝임을 알린다.

    ADD,SUB,MUL,DIV 연산을 수행한다.
ADD A,1
DIV A,B

    PRINT :스트링 및 수치를 출력 한다.
SET I , 0
PRINT 10
PRINT I,K:10,"test",LF <- LF는 라인 SKIP명령어 입니다.

    DO 화일 문:
DO SET I,1,1  //초기치는 1이고 증가치가 1이다.
    <statement>

WHILE I<10 // 1 에서 10까지 1씩 증가 해서 처리된다.

    struct / e_struct   : 데이터 베이스 선언문/ 종료문
    다음과 같은 데이터 베이스를 정의 할수 있다.
    struct SAMPLE
I  INT      <- 정수의 선언이다.
K  STR 20   <- 20개의 char를 갖는 문자열이다.
    e_struct        <- 선언이 끝났음을 알린다.

    SAMPLE test     <- test 라는 DB SAMPLE의 영역을 확보한다.

    SET test~I,0    <- I에 0을 할당한다.
    SET test~K,"TE" <- K에 "TE"을 할당한다.

    PRINT test~I:5,test~K:10,LF
FILE   : 읽기 전용으로 화일의 열수 있게 한다.
    FILE "sample.txt"

READ   : FILE 로 열어진 화일로 부터 줄단이로 데이터를 읽는다.
 물론 반드시 DB 로 선언되어진 데이터 변수가 있어야 한다.

SHELL "COMMAND.COM"
:목적 프로그램을 실행시킨다.
DELAY 1000  : 지정한 시간만큼 기다린다 -> <구현예정> 2018.06.01 Add

    struct XX
A INT
B INT
C STR 20
    e_struct

    XX t

    FILE "s.txt"

    READ t

    PRINT t~A,t~B,t~C,LF

    END.

FUNCTION NAMES
SET I,1
RETURN

    s.txt = 의 내용 {
10 10 "hdhd dhdh"
20 20 yryr
30 30 "ttt ttt"
    } 

2013년 4월 14일 일요일

[팁] API baseline 오류에 관하여




이클립스 플러그인 프로젝트를 생성시 다음의 오류가 나타난경우 

이클립스 메뉴에서 다음과 같이 메뉴 순서대로 따라가셔서 오류를 경고나 무시로 바꾸세요

  1. Windows > Preferences > Plug-in Development > API Baselines > Options > Missing API baseline
  2. "Error" 에서 "Warning" 또는 "Ignore" 로 콤보박스를 클릭하셔서 변경 하세요
발생원인은 알수 없습니다.
하지만 더이상 진행이 안돼면 이클립스를 포기할수도 있어서 기록을 남깁니다.


2013년 4월 3일 수요일

[참고] 이클립스 플러그인 개발을 시작



*) 위사이트에서 카피한것입니다.
*) 다른참조: http://www.javajigi.net/display/IDE/Eclipse
*) 개발시작 단계에서 많은 이클립스 지식이 노후화되어 있음을 발견
   이글로 노후화 되어 있음
   어느정도의 기본지식을 갖으려면 책을 구입할 필요가 느껴짐


이클립스 플러그인 개발을 시작하려면 다소 막막할 수 있습니다.

새로운 GUI 플랫폼(SWT), 새로운 GUI 프레임워크(JFace), 구조는 간단하지만 워낙 많은 것이 얽혀 있는 이클립스 플러그인 아키텍처 등 당장 시작하려고만 해도 할 것이 많습니다. 게다가 이클립스 플랫폼의 장점인 EMF, GEF 같은 멋진 툴과 프레임워크를 사용하려면 각각에 대해서도 꽤 공부를 해야합니다.

그래도 얼마 전에 비해서는 이클립스에 대한 개발문서나 자료가 많이 늘어난 상황이기 때문에 이클립스 소스부터 보면서 할 필요는 없어진 것 같습니다. 이클립스 개발문서/책은 개별적으로 작성된 것이 대부분이므로 어떤 순서로 참고하면 좋을지 정리해보았습니다.


Platform Plug-in DeveloperGuide

이클립스 도움말에 들어있습니다. 간단한 예제와 함께 전체적인 개요를 보여줍니다. 하지만 개별 내용은 정말로 개요 수준이기 때문에 예제까지 실행까지만 본뒤 나중에 각각의 사항에 대해 방향을 잡을 때 다시 참고하시면 좋을 것입니다.

SWT/JFace

SWT는 단순히 위젯, 레이아웃으로 구성된 라이브러리라 예제만 몇개 해보면 금방 사용할 수 있을 것입니다.
SWT 개발을 쉽게 하시려면 Eclipse Projects 중 Visual Editor를 설치하시면 됩니다. 꼭 Visual Editor로 코딩하지 않더라도 SWT Library를 Java Build Path에 추가시켜주기 때문에 좀 더 편하게 SWT Standalone Application을 테스트할 수 있습니다.

eclipse-example

JFace는 Swing과 같이 MVC 아키텍처 등을 제공하는 API입니다. SWT를 기반으로 해서 작성된 프레임워크입니다. Swing을 써보신 분은 쉽게 적응할 수 있겠지만, Java GUI 어플리케이션을 처음 다루는 분은 가장 공들여 보아야 할 부분이라고 생각됩니다. 문제는 아직 쓸만한 문서가 많지 않다는 건데, 이클립스와 별개로 JFace에 대해서만 다루는 문서는 많지 않지만 이클립스 플러그인 개발이 SWT/JFace 기반이기 때문에 앞으로 볼 문서들에서 조금씩 참고하시면 됩니다.


Eclipse Plug-in
우선 이클립스 도움말에 있는 PDE Guide를 참고해서 PDE에 대한 개념을 잡습니다. PDE는 개발중인 플러그인과 기존 플러그인을 함께 참조하는 별도의 이클립스 인스턴스를 실행시켜서 개발중인 플러그인을 테스트합니다.
예제를 이용해서 Action, View, Editor 등의 순서대로 하나씩 직접 만들어 봅니다. 이클립스에서 새 플러그인 프로젝트를 만들 때 자동으로 예제를 생성해줍니다. 예제를 바탕으로 개별 플러그인을 작성하는 방법에 대해서 살펴봅니다.

Platform Plug-in Developer Guide를 항목별로 살펴봅니다.

워크벤치 내부구조에 대해 설명합니다.

RCP Application
개발된 플러그인에 몇가지 클래스 및 확장만 덧붙이면 독립적인 어플리케이션이 될 수 있습니다.

http://www.eclipse.org/articles/Article-RCP-2/tutorial2.html

Eclipse Rich Client Platform - Designing, Coding and Packaging Java Applications
가장 최신의 책으로써 멋진 RCP 어플리케이션을 완성해가는 과정을 담고 있습니다. Eclipse RCP 프로젝트 리더가 저술한 책입니다. 2005년 10월 출판으로 최신의 내용들을 담고 있습니다.

Eclipse - Building Commercial-Quality Plug-ins
이클립스 플러그인 유형 중 가장 많이 쓰이는 Action, View, Editor와 그것들을 보조하는 구성요소를 세세히 다룹니다. 이 책의 장점은 상용 수준의 어플리케이션을 작성할 수 있도록 세세한 고려사항을 잘 정리해놓았다는 점입니다. 단 Eclipse 3.0 기준이어서 OSGi 표준 등은 반영되어 있지 않습니다. 그러나 코드는 거의 대부분 그대로 사용가능합니다.

이클립스 활용가이드라는 번역서도 있지만 아쉽게도 Eclipse 2.1기준입니다.
자바 개발자를 위한 이클립스 바이블 (2판) - 번역서
비교적 기초적인 내용이긴 하지만 처음 시작할 때 보기에 제일 적합한 듯 합니다. 번역도 잘되어 있구요.
3.0 기준입니다. 이 책의 앞부분은 우리 까페 분들에게는 그다지 필요없는 부분일듯 ^^

오픈소스
개발문서는 많은 것을 얘기해주지 못합니다. 기본적인 사항을 익힌 후에는 이클립스 자체의 코드를 참조하는 것이 제일 좋습니다. 자신이 만들려고 하는 플러그인과 가장 흡사한 플러그인을 찾아서 베끼다시피 만드는 것이 처음에는 가장 좋은 방법일 것입니다.

2013년 3월 13일 수요일

[팁]Windows7 32bit 에서 4G 이상 메모리 사용하기


32 bit 윈도우 환경에서는 3g 이상 안됀다고들 합니다만
그러나 찾으면 찾을것이라 라는 말은 진리인듯 , 정말로 방법이 있군요

Windows7 32 bit 에서 4 giga byte 이상 메모리를 사용하기 위해서는
먼저 사용하려구 하는 OS가 정품인증을 받은 상태여야 합니다.
정품인증을 받지 않은 상태에서는 OS에 이상이 발생할수 있습니다....

Download : http://blog.naver.com/ihaneter/130140886065  => 여기서 첨부파일을 받으세요

위의 파일을 Download 하시고 앞축을 푸시면 다음과 같은 목록을 보실수 있습니다.

AddBootMenu.cmd
readme.txt
ReadyFor4GB.exe
viewmem-x86.sys

순서는 먼저 ReadyFor4GB.exe 를 실행합니다.


위애서 보이는 버튼 순서대로 클릭합니다.
Check -> Apply

다음에 무엇인가를 실행하라는 메세지 박스를 볼수 있을것입니다.

메세지박스를 확인하시고 목록중에 
AddBootMenu.cmd 를 오른쪽 버튼 클릭해서 관리자 권한으로 실행하십시오..
( Vista 이상은 오른쪽 버튼을 클릭하면 나오는 메뉴에 관리자 권한 실행이 나타납니다... )
*) 관리자 권한이 아니면 최종 갱신 되지 않으므로 주의 하십시오...

확장가능한 최대 메모리는 128 Giga Byte 입니다. ( 저는 4 Giga 밖에는 없습니다.)

이경우는 Windows7 만 테스트 한경우이며 다른 OS도 가능하다는 예기가 있습니다.

마지막으로 ...
여기서 당연히 Reboot 해야 합니다.
주의할점은 Reboot하면
OS 선택창에 새로은 OS 링크가 생깁니다.
그걸 선택해야 메모리가 확장된것을 볼수 있습니다.
아무생각없이 그냥 Enter를 치시면 당연히 아무일도 안일어 납니다.
이것으로 완료가 됩니다.

작업관리자 결과


그럼 즐거운 팁이 되었으면 좋겠습니다...
by haneter

2013년 3월 10일 일요일

java 와 flex의 언어의 유사점비교


참조: http://java.sys-con.com/node/299251
Below is a short comparison table of major elements/concepts of these two languages for a quick reference.
아래의 빠른 참조를 위해 주요 요소 /이 두 언어의 개념에 대한 간단한 비교 표입니다.


You can read this table either left-to-right or right-to-left, depending on what’s your primary programming language is today.
JAVA 또는 FLEX(액션스크립트) 둘중의 어느것을 가지고 있는지에 따라 두 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로이 테이블을 읽을 수 있습니다.
This list is not complete, and your input is appreciated.
이 목록은 완전하지 않습니다, ​​그리고 입력에 감사드립니다.


Concept/Language Construct
Java 5.0
ActionScript 3.0
Class library packaging
.jar
.swc
Inheritance
class Employee extends Person{…}
class Employee extends Person{…}

Variable declaration and initialization
String firstName=”John”;
Date shipDate=new Date();
int i;
int a, b=10;
double salary;
var firstName:String=”John”;
var shipDate:Date=new Date();
var i:int;
var a:int, b:int=10;
var salary:Number;
Undeclared variables
n/a
It’s an equivalent to the wild card type notation *. If you declare a variable but do not specify its type, the * type will apply.
A default value: undefined
var myVar:*;

Variable scopes
block: declared within curly braces,
local: declared within a method or a block

member: declared on the class level

no global variables
No block scope: the minimal scope is a function

local: declared within a function

member: declared on the class level

If a variable is declared outside of any function or class definition, it has global scope.
Strings
Immutable, store sequences of two-byte Unicode characters
Immutable, store sequences of two-byte Unicode characters
Terminating statements with semicolons
A must
If you write one statement per line you can omit it.
Strict equality operator
n/a
===
for strict non-equality use
!==
Constant qualifier
The keyword final

final int STATE=”NY”;
The keyword const

const STATE:int =”NY”;
Type checking
Static (checked at compile time)
Dynamic (checked at run-time) and static (it’s so called ‘strict mode’, which is default in Flex Builder)
Type check operator
instanceof
is – checks data type, i.e. if (myVar is String){…}

The is operator is a replacement of older instanceof
The as operator
n/a
Similar to is operator, but returns not Boolean, but the result of expression:

var orderId:String=”123”;
var orderIdN:Number=orderId as Number;
trace(orderIdN);//prints 123

Primitives
byte, int, long, float, double,short, boolean, char
all primitives in ActionScript areobjects.
Boolean, int, uint, Number, String

The following lines are equivalent;
var age:int = 25;
var age:int = new int(25);

Complex types
n/a
Array, Date, Error, Function, RegExp, XML, and XMLList
Array declaration and instantiation
int quarterResults[];
quarterResults =
new int[4];


int quarterResults[]={25,33,56,84};

var quarterResults:Array
=new Array();
or
var quarterResults:Array=[];

var quarterResults:Array=
[25, 33, 56, 84];
AS3 also has associative arrays that uses named elements instead of numeric indexes (similar to Hashtable).
The top class in the inheritance tree
Object

Object
Casting syntax: cast the class Object to Person:

Person p=(Person) myObject;

var p:Person= Person(myObject);
or
var p:Person= myObject as Person;
upcasting
class Xyz extends Abc{}
Abc myObj = new Xyz();

class Xyz extends Abc{}
var myObj:Abc=new Xyz();
Un-typed variable
n/a
var myObject:*
var myObject:
packages
package com.xyz;
class myClass {…}
package com.xyz{
class myClass{…}
}
ActionScript packages can include not only classes, but separate functions as well
Class access levels
public, private, protected
if none is specified, classes have package access level
public, private, protected
if none is specified, classes have internalaccess level (similar to package access level in Java)
Custom access levels: namespaces
n/a
Similar to XML namespaces.
namespace abc;
abc function myCalc(){}
 or
 abc::myCalc(){}
 use namespace abc ;
nsole output
System.out.println();
// in debug mode only
trace();
imports
import com.abc.*;
import com.abc.MyClass;
import com.abc.*;
import com.abc.MyClass; 
packages must be imported even if the class names are fully qualified in the code.
Unordered key-value pairs
Hashtable, Map
 
Hashtable friends = new Hashtable();

friends.put("good",
“Mary”);
friends.put("best",
“Bill”);
friends.put("bad",
“Masha”);

String bestFriend= friends.get(“best”);
// bestFriend is Bill
Associative Arrays
Allows referencing its elements by names instead of indexes.
var friends:Array=new Array();
friends["good"]="Mary";
friends["best"]="Bill";
friends["bad"]="Masha";

var bestFriend:String= friends[“best”]
friends.best=”Alex”;
Another syntax:
var car:Object = {make:"Toyota", model:"Camry"};
trace (car["make"], car.model);
// Output: Toyota Camry
Hoisting
n/a
Compiler moves all variable declaration to the top of the function, so you can use a variable name even before it’s been explicitly declared in the code.
Instantiation objects from classes
Customer cmr = new Customer(); 
Class cls = Class.forName(“Customer”);
Object myObj= cls.newInstance();
var cmr:Customer = new Customer();
var cls:Class = flash.util.getClassByName("Customer");
var myObj:Object = new cls();
Private classes
private class myClass{…}
There is no private classes in AS3.

Private constructors
Supported. Typical use: singleton classes.
Not available. Implementation of private constructors is postponed as they are not the part of the ECMAScript standard yet.
To create a Singleton, use public static getInstance(), which sets a private flag instanceExists after the first instantiation. Check this flag in the public constructor, and if instanceExists==true, throw an error.
Class and file names
A file can have multiple class declarations, but only one of them can be public, and the file must have the same name as this class.
A file can have multiple class declarations, but only one of them can be placed inside the package declaration, and the file must have the same name as this class.
What can be placed in a package
Classes and interfaces
Classes, interfaces, variables, functions, namespaces, and executable statements.
Dynamic classes (define an object that can be altered at runtime by adding or changing properties and methods).
n/a
dynamic class Person {
var name:String;
}
//Dynamically add a variable // and a function
Person p= new Person();
p.name=”Joe”;
p.age=25;
p.printMe = function () {
trace (p.name, p.age);
}
p.printMe(); // Joe 25
function closures
n/a. Closure is a proposed addition to Java 7.
myButton.addEventListener(“click”, myMethod);
A closure is an object that represents a snapshot of a function with its lexical context (variable’s values, objects in the scope). A function closure can be passed as an argument and executed without being a part of any object
Abstract classes
supported
n/a
Function overriding
supported
Supported. You must use the override qualifier
 Function overloading supported not supported
Interfaces
class A implements B{…}
interfaces can contain method declarations and final variables.
class A implements B{…}
interfaces can contain only function declarations.
Exception handling
Keywords: try, catch, throw, finally, throws

Uncaught exceptions are propagated to the calling method.
Keywords: try, catch, throw, finally

A method does not have to declare exceptions.
Can throw not only Error objects, but also numbers:

throw 25.3;

Flash Player terminates the script in case of uncaught exception.

Regular expressions
Supported
Supported