Difference between revisions of "User:Roozbeh"

From Lazarus wiki
Jump to navigationJump to search
m (Reverted edits by ChristiSargent (Talk); changed back to last version by Roozbeh)
 
(11 intermediate revisions by 3 users not shown)
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==
  
 
* <strike>TImage on Wince.</strike>
 
* <strike>TImage on Wince.</strike>
* Other controls/components which need being implemented.
+
* <strike>Other controls/ components which need being implemented.</strike>
* Creating/Simulating those non-existent/required Win32 APIs on WinCE.
+
* <strike>Creating/Simulating those non-existent/required Win32 APIs on WinCE.</strike>
 
* Special Components for mobile devices.
 
* Special Components for mobile devices.
* Special Components for support for games on wince.
+
* i have some MAPI componenets for working with outlook and mail items,but the code is very messy,i hope soon i'll be able to submit them to lazarus project.
* FPC for symbian OS.
+
* <strike>Special Components for support for games on wince.</strike>
* Lazarus for Series 60,UIQ and all those Symbian OS gui interfaces.
+
* <strike>FPC for symbian OS.</strike>
 +
* <strike>Lazarus for Series 60,UIQ and all those Symbian OS gui interfaces.</strike>
 
* 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 :===  
1.Compiler seems to complete for arm,but THUMB and interworking is something good for symbian.
 
  
2.It seems there are some ABI incompatibilities,at least peaple from symbian insist only symbian 9 and greater is now ok,find out what they are and how to implement them
+
1.Compiler seems to be complete for arm, but THUMB and interworking is something good for symbian.
  
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.
+
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.
  
These tools seems to be helpfull in someway :  
+
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
 
   smoke,swig,doxyen
  
 
And some links to look at in this field:
 
And some links to look at in this field:
  
[http://rvelthuis.de/articles/articles-cppobjs.html]
+
http://rvelthuis.de/articles/articles-cppobjs.html
  
[http://qtcsharp.sourceforge.net/background.php]
+
http://qtcsharp.sourceforge.net/background.php
  
[http://dot.kde.org/1095964115/1095969821/1095971862/1095972037/1095972799/1096037901/1096041117/1096057255/]
+
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.kde.org/tiki-index.php?page=Language+Bindings+Talk
  
[http://wiki.dotgnu.info/Smoke/Refract]
+
http://wiki.dotgnu.info/Smoke/Refract
  
4.Symbian has very complicated build/make process,how to do that?
+
4.Symbian has very complicated build/make process, how to do that?
  
5.Symbian has diffrent kinds of applications,some modes has to be introduced.
+
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.
 
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?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 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.
  
Some usefull links:
+
9.The source code of gcc might be useful too.
  
[http://www.sciabarra.com/symbian-tutorial/?Symbian_C%2B%2B_Programming_Tutorial Symbian programming tutorial,recommended!]
+
Some useful links:
  
[http://symbian.compactbyte.com/ toturial]
+
[http://www.sciabarra.com/symbian-tutorial/?Symbian_C%2B%2B_Programming_Tutorial Symbian programming tutorial, recommended!]
  
[http://www.postneo.com/postwiki/moin.cgi/PythonForSeries60 Pythong for series60]
+
[http://symbian.compactbyte.com/ tutorial]
 +
 
 +
[http://www.postneo.com/postwiki/moin.cgi/PythonForSeries60 Python for series60]
  
 
[http://www.newlc.com/-SDKs- SDKS]
 
[http://www.newlc.com/-SDKs- SDKS]
  
[http://www.codeproject.com/ce/Symbian_OS_design_faults.asp Symbian OS design faults,intresting]
+
[http://www.codeproject.com/ce/Symbian_OS_design_faults.asp 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 : ===
 
=== 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.
 
  
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!
+
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.
 
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 96: Line 105:
 
[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 102: Line 111:
 
[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 124: Line 133:
 
[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 130: Line 139:
 
[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 145: Line 154:
 
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 151: Line 160:
 
[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===
+
<strike>===KOL for Wince===</strike>
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.
+
<strike>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.</strike>
  
 
===MSEIDE for wince===
 
===MSEIDE for wince===
There are problems with MSEIDE and fpc 2.1.x branch mostly becouse of widestring not being count refrenced anymore.
+
 
Currently only 2.1.x branch support wince and arm,so the project is on hold until MSEIDE become compatible with this branch.
+
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===
 
===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.
+
 
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.
+
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===
 
===Nice demos===
Creating nice demoes and componenets 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.
+
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===
 
===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://delphi-ce.blogspot.com My weblog]
 +
 
 +
[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]

Latest revision as of 10:18, 27 May 2010

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.
  • i have some MAPI componenets for working with outlook and mail items,but the code is very messy,i hope soon i'll be able to submit them to lazarus project.
  • 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

My weblog

Road Map of Lazarus

Windows CE Interfaces

Windows CE Development Notes