Difference between revisions of "User:Roozbeh"
(→MSEIDE for wince: improved readability) |
(Fixed grammars) |
||
Line 1: | Line 1: | ||
==Roozbeh GHolizadeh== | ==Roozbeh GHolizadeh== | ||
− | Started programming with | + | Started programming with Pascal around 1990,and was always a big fan of delphi/pascal language. |
− | I am new to | + | 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, | + | 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 | + | 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 hope I can achieve. |
− | ==Things | + | ==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 | + | 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 | + | 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. | + | 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 | + | 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 | + | 9.The source code of gcc might be useful too. |
− | Some | + | 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 | + | [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 | + | 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 | + | 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 | + | 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 | + | 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 | + | These links are helpful : |
− | Parsing,compiler construction and other necessary | + | 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 | + | 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 | + | [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 | + | [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 - | + | 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 | + | [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 | + | 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 | + | ===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 | + | 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 | + | 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 | + | I just don't know how to deal with their differences. |
− | Gladly everything seems to be | + | 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 | + | Creating nice demos and components is also a must to welcome new users to this field. |
− | I have ported gx-gapi-library and | + | 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 | + | 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 | + | [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://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!
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:
Parsing Techniques - A Practical Guide
Flex,Yacc,Bison and similar:
Compiler Construction using Flex and bison
BTYACC - Some YACC that can do c++
ANTLR ANother Tool for Language Recognition, (formerly PCCTS) :
Translators Should Use Tree Grammars
Compiler construction tools links:
Free Compiler Construction Tools
they have created a ctopas program
Elkbound and elsa - interesting things, just don't know yet what to do with them!
Nice to read:
[http://www.nobugs.org/developer/parsingcpp/ very nice article about parsing c++ and how to do that]
Hmm,dont know what do to with:
Openc++,just don't know if useful or not
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.