Pascal for Java users: Difference between revisions
From Lazarus wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
(20 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
{ | {{Pascal for Java users}} | ||
! | |||
! | == Translating common program snippets == | ||
! | The following site shows how common problems are solved in various programming languages, including Javan and FreePascal/Object Pascal: [http://rosettacode.org/wiki/Category:Pascal Rosetta Code] | ||
== Translating Java keywords/concepts == | |||
{| class="wikitable" | |||
! Java !! [[Pascal]] !! Additional comments | |||
|- | |- | ||
| { | | { | ||
Line 83: | Line 87: | ||
| // | | // | ||
| End of line comment (only one line comment) | | End of line comment (only one line comment) | ||
|- | |||
| public static void main(String[] args) { } | |||
| [[Program]] ProgramName; [[Begin]] [[End]]. | |||
| Note the period after End | |||
|- | |||
| someType arrayVar[]; | |||
| arrayVar: [[Array]] [[Of]] someType; | |||
| | |||
|- | |||
| someType arrayVar[#]; | |||
| arrayVar: [[Array]][MINRANGE..MAXRANGE] [[Of]] someType; | |||
| | |||
|- | |- | ||
| null | | null | ||
Line 98: | Line 114: | ||
| class TheClass { } | | class TheClass { } | ||
| TheClass = [[Class]] [[End]]; | | TheClass = [[Class]] [[End]]; | ||
| | | Delphi OOP | ||
|- | |||
| class TheClass { } | |||
| TheClass = [[Object]] [[End]]; | |||
| Turbo Pascal OOP | |||
|- | |- | ||
| class TheClass<T> { } | | class TheClass<T> { } | ||
| [[Generic]] TheClass = [[Class]]<T> [[End]]; | | [[Generic]] TheClass = [[Class]]<T> [[End]]; | ||
| Generics are classes only as of 2.2.2, likely to support more in the future | | Generics are classes only as of 2.2.2, likely to support more in the future | ||
|- | |||
| TheClass() | |||
| [[Constructor]] CtorName | |||
| Constructor name is by convention either Init or Create | |||
|- | |- | ||
| continue | | continue | ||
Line 114: | Line 138: | ||
| do while ! | | do while ! | ||
| [[Repeat]] [[Until]] | | [[Repeat]] [[Until]] | ||
| | |||
|- | |||
| enum TheEnum | |||
| TheEnum = ( MINVALUE .. MAXVALUE ); | |||
| | |||
|- | |||
| enum TheEnum = {MINVALUE, MAXVALUE} | |||
| TheEnum = ( MINVALUE, MAXVALUE ); | |||
| | |||
|- | |||
| TheEnum enumVar; | |||
| enumVar := [[Set]] [[Of]] TheEnum; | |||
| | | | ||
|- | |- | ||
Line 158: | Line 194: | ||
| native | | native | ||
| [[StdCall]] | | [[StdCall]] | ||
| | | For Windows | ||
|- | |- | ||
| native | | native | ||
| [[CDecl]] | | [[CDecl]] | ||
| | | For Unix | ||
|- | |- | ||
| new primitive_type[#]; | | new primitive_type[#]; | ||
| SetLength(ArrayVar, #); | | [[SetLength]](ArrayVar, #); | ||
| | | | ||
|- | |- | ||
Line 172: | Line 208: | ||
| | | | ||
|- | |- | ||
| package | | package pkgName; | ||
| [[Unit]] | | [[Unit]] unitName; [[Interface]] [[Implementation]] [[End]]. | ||
| | | Note the period after End | ||
|- | |- | ||
| private | | private | ||
Line 189: | Line 225: | ||
|- | |- | ||
| return | | return | ||
| FunctionName | | FunctionName := | ||
| | | | ||
|- | |- | ||
| return | | return | ||
| [[Result]] | | [[Result]] := | ||
| | | ObjFPC or Delphi modes | ||
|- | |||
| return | |||
| [[Function#return value|Exit()]] | |||
| ObjFPC modes | |||
|- | |- | ||
| static | | static | ||
Line 221: | Line 261: | ||
|- | |- | ||
| synchronized | | synchronized | ||
| | | [[TCriticalSection]] | ||
| | | | ||
|- | |- | ||
Line 241: | Line 281: | ||
|- | |- | ||
| try { } catch | | try { } catch | ||
| [[Try]] [[ | | [[Try]] [[Except]] | ||
| | | | ||
|- | |- | ||
Line 261: | Line 301: | ||
|} | |} | ||
== Translating Java data types == | |||
{| | {| class="wikitable" | ||
! | ! Java type !! [[Pascal]] [[Data_type|type]] !! Size (bits) !! Range !! | ||
! | |||
! | |||
! | |||
! | |||
|- | |- | ||
| byte | | byte | ||
Line 273: | Line 309: | ||
| 8-bit | | 8-bit | ||
| -128 .. 127 | | -128 .. 127 | ||
| | | | ||
|- | |- | ||
| short | | short | ||
| [[ | | [[Smallint]] | ||
| 16-bit | | 16-bit | ||
| -32768 .. 32767 | | -32768 .. 32767 | ||
|- | |- | ||
| int | | int | ||
| [[ | | [[Longint]] | ||
| 32-bit | | 32-bit | ||
| -2147483648..2147483647 | | -2147483648..2147483647 | ||
Line 302: | Line 327: | ||
| -2147483648..2147483647 | | -2147483648..2147483647 | ||
| | | | ||
|- | |- | ||
| long | | long | ||
Line 319: | Line 332: | ||
| 64-bit | | 64-bit | ||
| -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 | | -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 | ||
| | | | ||
|- | |- | ||
Line 348: | Line 355: | ||
| [[WideChar]] | | [[WideChar]] | ||
| 16-bit | | 16-bit | ||
| | |||
| | |||
|- | |||
| String | |||
| [[String]] | |||
| | | | ||
| | | | ||
Line 353: | Line 365: | ||
|- | |- | ||
|} | |} | ||
== See also == | |||
* [[Using Pascal Libraries with Java]] |
Latest revision as of 21:00, 4 March 2019
│
Deutsch (de) │
English (en) │
Translating common program snippets
The following site shows how common problems are solved in various programming languages, including Javan and FreePascal/Object Pascal: Rosetta Code
Translating Java keywords/concepts
Java | Pascal | Additional comments |
---|---|---|
{ | Begin | |
} | End | |
= | := | Becomes |
== | = | Equal |
/ | / | Division (or sometimes div) |
% | Mod | Modulo operation |
! | Not | |
!= | <> | Not equal |
&& | And | |
|| | Or | |
^ | Xor | |
>> | Shr | bit shift right |
<< | Shl | bit shift left |
++ | Inc | |
-- | Dec | |
/* | { | Comment start |
/* | (* | Comment start |
*/ | } | Comment end |
*/ | *) | Comment end |
// | // | End of line comment (only one line comment) |
public static void main(String[] args) { } | Program ProgramName; Begin End. | Note the period after End |
someType arrayVar[]; | arrayVar: Array Of someType; | |
someType arrayVar[#]; | arrayVar: Array[MINRANGE..MAXRANGE] Of someType; | |
null | Nil | |
abstract | Abstract | |
break | Break | |
class TheClass { } | TheClass = Class End; | Delphi OOP |
class TheClass { } | TheClass = Object End; | Turbo Pascal OOP |
class TheClass<T> { } | Generic TheClass = Class<T> End; | Generics are classes only as of 2.2.2, likely to support more in the future |
TheClass() | Constructor CtorName | Constructor name is by convention either Init or Create |
continue | Continue | |
do while | Repeat Until Not | |
do while ! | Repeat Until | |
enum TheEnum | TheEnum = ( MINVALUE .. MAXVALUE ); | |
enum TheEnum = {MINVALUE, MAXVALUE} | TheEnum = ( MINVALUE, MAXVALUE ); | |
TheEnum enumVar; | enumVar := Set Of TheEnum; | |
extends | SubClass = Class(BaseClass) | class SubClass extends BaseClass --> SubClass(BaseClass) |
final | Const | for constants, not uninheritables |
for ++ | For To Do | |
for -- | For Downto Do | |
if() | If Then | |
if() else | If Then Else | |
implements | SomeClass = Class(SomeInterface) | |
import | Uses | |
instanceof | Is | |
interface | TheInterface = Interface | |
native | StdCall | For Windows |
native | CDecl | For Unix |
new primitive_type[#]; | SetLength(ArrayVar, #); | |
new Class(); | InstanceVar := TheClass.Create; | |
package pkgName; | Unit unitName; Interface Implementation End. | Note the period after End |
private | Private | |
protected | Protected | |
public | Public | |
return | FunctionName := | |
return | Result := | ObjFPC or Delphi modes |
return | Exit() | ObjFPC modes |
static | Static | |
static | Class Function | |
static | Class Procedure | |
super | Inherited | Parent constructor call |
switch case break | Case Of End | |
switch case break default | Case Of Else End | |
synchronized | TCriticalSection | |
this | Self | |
throw | Raise | |
throws | ||
transient | ||
try { } catch | Try Except | |
try { } catch finally | Try Finally | |
void | Procedure | |
volatile | ||
while | While Do |
Translating Java data types
Java type | Pascal type | Size (bits) | Range | |
---|---|---|---|---|
byte | Shortint | 8-bit | -128 .. 127 | |
short | Smallint | 16-bit | -32768 .. 32767 | |
int | Longint | 32-bit | -2147483648..2147483647 | |
int | Integer | 32-bit | -2147483648..2147483647 | |
long | Int64 | 64-bit | -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 | |
float | Single | 32-bit | 1.5E-45 .. 3.4E+38 | |
double | Double | 64-bit | 5.0E-324 .. 1.7E+308 | |
boolean | Boolean | False True | ||
char | WideChar | 16-bit | ||
String | String |