Difference between revisions of "User:Roozbeh"

From Free Pascal wiki
Jump to navigationJump to search
(→‎MSEIDE for wince: improved readability)
(Fixed grammars)
Line 1: Line 1:
 
==Roozbeh GHolizadeh==
 
==Roozbeh GHolizadeh==
  
Started programming with pascal around 1990,and was always a big fan of delphi/pascal language.
+
Started programming with Pascal around 1990,and was always a big fan of delphi/pascal language.
I am new to lazarus, haven't used it for a big program yet, but i have lots of plans for it.
+
I am new to Lazarus, haven't used it for a big program yet, but i have lots of plans for it.
  
 
==My contributions==
 
==My contributions==
  
 
Well still not that much to be satisfied of but my main contributions was mainly to wince interfaces.
 
Well still not that much to be satisfied of but my main contributions was mainly to wince interfaces.
Yes,maybe so far almost the whole basis code of wince interfaces is done by me,but nothing to be proud of,i just borrowed 90% of code from win32 interface(so thank you guys),just modified it to be working on wince.
+
Yes, maybe so far almost the whole basis code of wince interfaces is done by me, but nothing to be proud of, I just borrowed 90% of code from win32 interface(so thank you guys),just modified it to be working on wince.
But i am really happy with my contributions to fpc compiler itself,for adding support for unaligned keyword,and handling of unaligned types.And some other small optimizations.
+
But I am really happy with my contributions to fpc compiler itself, for adding support for unaligned keyword, and handling of unaligned types. And some other small optimizations.
  
 
==My TODO List==
 
==My TODO List==
Line 21: Line 21:
 
* Contributions to lazarus/wiki pages for documenting more of internals.
 
* Contributions to lazarus/wiki pages for documenting more of internals.
  
Well,I think the list is huge enough to make me busy for as far as i can guess.
+
Well, I think the list is huge enough to make me busy for as far as i can guess.
I hope i can achieve.
+
I hope I can achieve.
  
==Things i am thinking of now==
+
==Things I am thinking of now==
  
 
===Symbian port :===  
 
===Symbian port :===  
Line 30: Line 30:
 
1.Compiler seems to be complete for arm, but THUMB and interworking is something good for symbian.
 
1.Compiler seems to be complete for arm, but THUMB and interworking is something good for symbian.
  
2.It seems there are some ABI incompatibilities,at least people from symbian irc insist only symbian 9 and greater is ok with arm abi, find out what they are and how to implement them.
+
2.It seems there are some ABI incompatibilities, at least people from symbian IRC insist only symbian 9 and greater is ok with arm abi, find out what they are and how to implement them.
  
3.Everything on symbian is in c++,and fpc cant connect to c++ object files,the only solution is to create bindings in c,and then link fpc to c instead.
+
3.Everything on symbian is in c++,and fpc cant connect to c++ object files, the only solution is to create bindings in c,and then link fpc to c instead.
  
These tools seems to be helpfull in someway :  
+
These tools seems to be helpful in someway :  
 
   smoke,swig,doxyen
 
   smoke,swig,doxyen
  
Line 55: Line 55:
 
6.Investigate how other languages- not c++ - deal with these problems.
 
6.Investigate how other languages- not c++ - deal with these problems.
  
7.Symbain OS -or their c++-does not have exceptions,static data and some strange other things.why?and does it mean we cant have them too on fpc?and how to deal with them!
+
7.Symbian OS -or their c++-does not have exceptions, static data and some strange other things.why?and does it mean we cant have them too on fpc?and how to deal with them!
  
8.Someone with great knowledge and background of symbian is defently needed here,i just know how to code simple programs on symbian.
+
8.Someone with great knowledge and background of symbian is needed here, I just know how to code simple programs on symbian.
  
9.The source code of gcc might be usefull too.
+
9.The source code of gcc might be useful too.
  
Some usefull links:
+
Some useful links:
  
 
[http://www.sciabarra.com/symbian-tutorial/?Symbian_C%2B%2B_Programming_Tutorial Symbian programming tutorial, recommended!]
 
[http://www.sciabarra.com/symbian-tutorial/?Symbian_C%2B%2B_Programming_Tutorial Symbian programming tutorial, recommended!]
Line 67: Line 67:
 
[http://symbian.compactbyte.com/ tutorial]
 
[http://symbian.compactbyte.com/ tutorial]
  
[http://www.postneo.com/postwiki/moin.cgi/PythonForSeries60 Pythong for series60]
+
[http://www.postneo.com/postwiki/moin.cgi/PythonForSeries60 Python for series60]
  
 
[http://www.newlc.com/-SDKs- SDKS]
 
[http://www.newlc.com/-SDKs- SDKS]
Line 74: Line 74:
  
 
Good books:
 
Good books:
Wiley,Programming for the Series 60 Platform and Symbian OS (2003)
+
Wiley, Programming for the Series 60 Platform and Symbian OS (2003)
 
Wiley,Symbian OS Internals Real time Kernel Programming Dec 2005
 
Wiley,Symbian OS Internals Real time Kernel Programming Dec 2005
  
 
=== C/C++ to Pascal translator : ===
 
=== C/C++ to Pascal translator : ===
  
I thought one of main reasons why peaple dont use pascal is problems they have with header files-which are in c-and lack of code samples.So maybe a good c/c++ to pascal compiler/translator can do some changes.
+
I thought one of main reasons why people don't use Pascal is problems they have with header files-which are in c-and lack of code samples. So maybe a good c/c++ to Pascal compiler/translator can do some changes.
  
Currently we have H2PAS program but it is not that perfect and it is just for header files,also no nice gui and no nice other things too!
+
Currently we have H2PAS program but it is not that perfect and it is just for header files, also no nice gui and no nice other things too!
 
Using a compiler-compiler or other tools that do the job of creating compilers seems to be the best way to do and start with.
 
Using a compiler-compiler or other tools that do the job of creating compilers seems to be the best way to do and start with.
  
Currently we only have tpyacc and tplex-YACC and LEX for pascal-,which they can be a good approach to c but have problems in understanding c++.
+
Currently we only have tpyacc and tplex-YACC and LEX for Pascal, which they can be a good approach to c but have problems in understanding c++.
Other tools simply doesnt generate code in pascal,which i would like program with.
+
Other tools simply doesn't generate code in Pascal, which i would like program with.
  
There are plenty of compiler generators in world so which one to use is still has to be choosen.
+
There are plenty of compiler generators in world so which one to use is still has to be chosen.
  
 
Parsing seems to be easy now with these tools but still syntetic analyses still has to be done.
 
Parsing seems to be easy now with these tools but still syntetic analyses still has to be done.
 
Some tools also can generate good AST,maybe running those tools and using the generated AST can be an alternative.
 
Some tools also can generate good AST,maybe running those tools and using the generated AST can be an alternative.
  
These links are helpfull :
+
These links are helpful :
  
Parsing,compiler construction and other necessary informations:
+
Parsing, compiler construction and other necessary information:
  
 
[http://www.cs.kent.edu/~batcher/CS453111/ Structure of Compilers]
 
[http://www.cs.kent.edu/~batcher/CS453111/ Structure of Compilers]
Line 104: Line 104:
 
[http://compilers.iecc.com/crenshaw/ Let's Build a Compiler]
 
[http://compilers.iecc.com/crenshaw/ Let's Build a Compiler]
  
Flex,Yacc,Bison and similars:
+
Flex,Yacc,Bison and similar:
  
 
[http://cs.wwc.edu/~aabyan/PLBook/HTML/Translation.html Compiler Construction using Flex and bison]
 
[http://cs.wwc.edu/~aabyan/PLBook/HTML/Translation.html Compiler Construction using Flex and bison]
Line 110: Line 110:
 
[http://www.siber.com/btyacc/ BTYACC - Some YACC that can do c++]
 
[http://www.siber.com/btyacc/ BTYACC - Some YACC that can do c++]
  
[http://www.quut.com/c/ANSI-C-grammar-y.html ANSI c grammer for YACC]
+
[http://www.quut.com/c/ANSI-C-grammar-y.html ANSI c grammar for YACC]
  
 
ANTLR ANother Tool for Language Recognition, (formerly PCCTS) :
 
ANTLR ANother Tool for Language Recognition, (formerly PCCTS) :
Line 132: Line 132:
 
[http://www.thefreecountry.com/sourcecode/grammars.shtml grammers]
 
[http://www.thefreecountry.com/sourcecode/grammars.shtml grammers]
  
[http://www.lischke-online.de/DCG.php delphi compiler generator]
+
[http://www.lischke-online.de/DCG.php Delphi compiler generator]
  
 
[http://www.bloodshed.net/compilers/ The Compilers resources page]
 
[http://www.bloodshed.net/compilers/ The Compilers resources page]
Line 138: Line 138:
 
[http://www.knosof.co.uk/index.html they have created a ctopas program]
 
[http://www.knosof.co.uk/index.html they have created a ctopas program]
  
Elkbound and elsa - intresting things,just dont know yet what to do with them!
+
Elkbound and elsa - interesting things, just don't know yet what to do with them!
  
 
[http://www.cs.berkeley.edu/~smcpeak/elkhound/]
 
[http://www.cs.berkeley.edu/~smcpeak/elkhound/]
Line 153: Line 153:
 
Hmm,dont know what do to with:
 
Hmm,dont know what do to with:
  
[http://www.csg.is.titech.ac.jp/~chiba/openc++.html Openc++,just dont know if usefull or not]
+
[http://www.csg.is.titech.ac.jp/~chiba/openc++.html Openc++,just don't know if useful or not]
  
 
[http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/MetaEnvironment]
 
[http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/MetaEnvironment]
Line 159: Line 159:
 
[http://c4.cs.princeton.edu/]
 
[http://c4.cs.princeton.edu/]
  
I found ANTLR is the best solution so far,maybe working on it to make it generate pascal files is also another good project!
+
I found ANTLR is the best solution so far, maybe working on it to make it generate Pascal files is also another good project!
  
===ANTRL pascal===
+
===ANTRL Pascal===
  
 
ANTRL currently support generating code for c++,python,c#,java and also some others have semi working vb.net.
 
ANTRL currently support generating code for c++,python,c#,java and also some others have semi working vb.net.
Pascal addition could be an intresting thing to do,and will also ease the making of c/c++ to pascal translator.
+
Pascal addition could be an interesting thing to do, and will also ease the making of c/c++ to Pascal translator.
I've contacted the author but havent got any replies yet.
+
I've contacted the author but haven't got any replies yet.
 
The source of ANTRL is written in Java.
 
The source of ANTRL is written in Java.
  
 
===KOL for Wince===
 
===KOL for Wince===
  
Currently Lazarus generated exe files are too big for distribution for these devices,so KOL for wince is really a good thing to happen.
+
Currently Lazarus generated exe files are too big for distribution for these devices, so KOL for wince is really a good thing to happen.
I am currently working with Thaddy on this,it seems to be a simple job,just have to remove some x86 assembly codes.
+
I am currently working with Thaddy on this, it seems to be a simple job, just have to remove some x86 assembly codes.
  
 
===MSEIDE for wince===
 
===MSEIDE for wince===
Line 180: Line 180:
 
===Lazarus Big exe files===
 
===Lazarus Big exe files===
  
We can at least not compile lots of files for wince.Still the case has to be investigated more.
+
We can at least not compile lots of files for wince. Still the case has to be investigated more.
  
 
===Wince,PocketPC,Smartphone===
 
===Wince,PocketPC,Smartphone===
  
I just dont know how to deal with their diffrences.
+
I just don't know how to deal with their differences.
Gladly everything seems to be uniqued in win ce 5.0 but lots of things and how one should do things are diffrent in these 3 diffrent platforms.
+
Gladly everything seems to be unique in win ce 5.0 but lots of things and how one should do things are different in these 3 different platforms.
  
 
===Nice demos===
 
===Nice demos===
  
Creating nice demoes and componenets is also a must to welcome new users to this field.
+
Creating nice demos and components is also a must to welcome new users to this field.
I have ported gx-gapi-library and sdl to work in wince,just have to find time and the idea to make nice programs from them.
+
I have ported gx-gapi-library and SDL to work in wince, just have to find time and the idea to make nice programs from them.
  
 
===Lazarus on Wince===
 
===Lazarus on Wince===
Yes,why not.The best way to test almost all widgetsets is to run lazarus itself on wince.
+
Yes, why not. The best way to test almost all widgetsets is to run Lazarus itself on wince.
  
  
 
==My WinCE Links==
 
==My WinCE Links==
  
[http://wiki.lazarus.freepascal.org/index.php/Roadmap Road Map of lazarus]
+
[http://wiki.lazarus.freepascal.org/index.php/Roadmap Road Map of Lazarus]
  
 
[http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Interface Windows CE Interfaces]
 
[http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Interface Windows CE Interfaces]
  
 
[http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Development_Notes Windows CE Development Notes]
 
[http://wiki.lazarus.freepascal.org/index.php/Windows_CE_Development_Notes Windows CE Development Notes]

Revision as of 12:37, 22 December 2006

Roozbeh GHolizadeh

Started programming with Pascal around 1990,and was always a big fan of delphi/pascal language. I am new to Lazarus, haven't used it for a big program yet, but i have lots of plans for it.

My contributions

Well still not that much to be satisfied of but my main contributions was mainly to wince interfaces. Yes, maybe so far almost the whole basis code of wince interfaces is done by me, but nothing to be proud of, I just borrowed 90% of code from win32 interface(so thank you guys),just modified it to be working on wince. But I am really happy with my contributions to fpc compiler itself, for adding support for unaligned keyword, and handling of unaligned types. And some other small optimizations.

My TODO List

  • TImage on Wince.
  • Other controls/components which need being implemented.
  • Creating/Simulating those non-existent/required Win32 APIs on WinCE.
  • Special Components for mobile devices.
  • Special Components for support for games on wince.
  • FPC for symbian OS.
  • Lazarus for Series 60,UIQ and all those Symbian OS gui interfaces.
  • Contributions to lazarus/wiki pages for documenting more of internals.

Well, I think the list is huge enough to make me busy for as far as i can guess. I hope I can achieve.

Things I am thinking of now

Symbian port :

1.Compiler seems to be complete for arm, but THUMB and interworking is something good for symbian.

2.It seems there are some ABI incompatibilities, at least people from symbian IRC insist only symbian 9 and greater is ok with arm abi, find out what they are and how to implement them.

3.Everything on symbian is in c++,and fpc cant connect to c++ object files, the only solution is to create bindings in c,and then link fpc to c instead.

These tools seems to be helpful in someway :

  smoke,swig,doxyen

And some links to look at in this field:

http://rvelthuis.de/articles/articles-cppobjs.html

http://qtcsharp.sourceforge.net/background.php

http://dot.kde.org/1095964115/1095969821/1095971862/1095972037/1095972799/1096037901/1096041117/1096057255/

http://wiki.kde.org/tiki-index.php?page=Language+Bindings+Talk

http://wiki.dotgnu.info/Smoke/Refract

4.Symbian has very complicated build/make process, how to do that?

5.Symbian has different kinds of applications, some new application modes has to be introduced.

6.Investigate how other languages- not c++ - deal with these problems.

7.Symbian OS -or their c++-does not have exceptions, static data and some strange other things.why?and does it mean we cant have them too on fpc?and how to deal with them!

8.Someone with great knowledge and background of symbian is needed here, I just know how to code simple programs on symbian.

9.The source code of gcc might be useful too.

Some useful links:

Symbian programming tutorial, recommended!

tutorial

Python for series60

SDKS

Symbian OS design faults, interesting

Good books: Wiley, Programming for the Series 60 Platform and Symbian OS (2003) Wiley,Symbian OS Internals Real time Kernel Programming Dec 2005

C/C++ to Pascal translator :

I thought one of main reasons why people don't use Pascal is problems they have with header files-which are in c-and lack of code samples. So maybe a good c/c++ to Pascal compiler/translator can do some changes.

Currently we have H2PAS program but it is not that perfect and it is just for header files, also no nice gui and no nice other things too! Using a compiler-compiler or other tools that do the job of creating compilers seems to be the best way to do and start with.

Currently we only have tpyacc and tplex-YACC and LEX for Pascal, which they can be a good approach to c but have problems in understanding c++. Other tools simply doesn't generate code in Pascal, which i would like program with.

There are plenty of compiler generators in world so which one to use is still has to be chosen.

Parsing seems to be easy now with these tools but still syntetic analyses still has to be done. Some tools also can generate good AST,maybe running those tools and using the generated AST can be an alternative.

These links are helpful :

Parsing, compiler construction and other necessary information:

Structure of Compilers

Parsing Techniques - A Practical Guide

Modern Compiler Design

Let's Build a Compiler

Flex,Yacc,Bison and similar:

Compiler Construction using Flex and bison

BTYACC - Some YACC that can do c++

ANSI c grammar for YACC

ANTLR ANother Tool for Language Recognition, (formerly PCCTS) :

ANTLR

Translators Should Use Tree Grammars

PCCTS

Why Use ANTLR?

ANTLR tutorial

Compiler construction tools links:

Free Compiler Construction Tools

compiler-compilers

grammers

Delphi compiler generator

The Compilers resources page

they have created a ctopas program

Elkbound and elsa - interesting things, just don't know yet what to do with them!

[1]

[2]

Nice to read:

[http://www.nobugs.org/developer/parsingcpp/ very nice article about parsing c++ and how to do that]

[3]

Hmm,dont know what do to with:

Openc++,just don't know if useful or not

[4]

[5]

I found ANTLR is the best solution so far, maybe working on it to make it generate Pascal files is also another good project!

ANTRL Pascal

ANTRL currently support generating code for c++,python,c#,java and also some others have semi working vb.net. Pascal addition could be an interesting thing to do, and will also ease the making of c/c++ to Pascal translator. I've contacted the author but haven't got any replies yet. The source of ANTRL is written in Java.

KOL for Wince

Currently Lazarus generated exe files are too big for distribution for these devices, so KOL for wince is really a good thing to happen. I am currently working with Thaddy on this, it seems to be a simple job, just have to remove some x86 assembly codes.

MSEIDE for wince

There are problems with MSEIDE and fpc 2.1.x branch, mostly because of widestring not being reference counted anymore. Currently only 2.1.x branch supports wince and arm, so the project is on hold until MSEIDE become compatible with this branch.

Lazarus Big exe files

We can at least not compile lots of files for wince. Still the case has to be investigated more.

Wince,PocketPC,Smartphone

I just don't know how to deal with their differences. Gladly everything seems to be unique in win ce 5.0 but lots of things and how one should do things are different in these 3 different platforms.

Nice demos

Creating nice demos and components is also a must to welcome new users to this field. I have ported gx-gapi-library and SDL to work in wince, just have to find time and the idea to make nice programs from them.

Lazarus on Wince

Yes, why not. The best way to test almost all widgetsets is to run Lazarus itself on wince.


My WinCE Links

Road Map of Lazarus

Windows CE Interfaces

Windows CE Development Notes