Click here to send us your inquires or call (852) 36130518

HISTOIRE DES LANGAGES INFORMATIQUE

2002 Jean Bellec

Retour histoire informatique

version partielle provisoire
noter que les hyperliens mentionnent des pages encore en construction, et que leur existence ne fait que reflter l'avancement de cette version partielle et peut-tre partiale de l'histoire informatique.

La programmation des machines comme l'ASCC (Harvard MkI) ou les premires machines de gestion fut une opration de cblage, la manire des automates industriels. IBM, Univac et Bull avaient dvelopp le concept de tableau de connexion amovible qui avait l'avantage de ne pas immobiliser le systme pendant le dveloppement d'un programme particulier. Ensuite, ces constructeurs inventrent un concept de tableau secondaire pour garder des morceaux de programme partags, un prdcesseur des sous programmes en quelque sorte. Ces tableaux de connexion restrent le moyen de programmer les machines jusque vers 1955, moment o les ordinateurs programme enregistr sortirent des laboratoires.

La programmation par panneaux de connexions garda des traces dans le milieu des programmeurs d'applications de gestion o le concept de procdures avait du mal pntrer. Aussi, naquirent les Gestions Automatiques de Programme (nom donn par IBM France au Report Program Generator -RPG-) introduit sur les premiers petits ordinateurs de gestion et dont la dernire version RPG3 fut le langage principal de programmation du System 38 et de l'AS/400.
Je pense qu'on retrouve une trace de cette approche dans les tableurs (Visicalc, Multiplan et autres Excel) qui sont devenus le principal usage programmatique sur les micro-ordinateurs.

 

Les machines programme enregistr drivent des concepts de von Neumann au dbut des annes 1950. La caractristique principale de ces machines qui restait conteste dans les annes 1960, mais s'imposa au moins partiellement par la suite, tait de banaliser la mmoire principale -mmoire tores ou tambour- entre donnes et programmes et de laisser envisager l'auto modification des programmes. L'usage de cette auto modification pouvait tre un gain de place en rutilisant comme constantes certaines parties du programme -source de pnibles mises au point au dbut des annes 1960,, ce pouvait aussi l'amorce d'une intelligence artificielle o le programme savait s'adapter aux pripties du calcul. En pratique, la principale utilisation de la banalisation de la mmoire a t la programmation automatique, c'est dire, la fabrication d'un programme partir d'un langage de programmation au moyen d'un autre programme qu'on appellera, probablement abusivement, un compilateur. L'abus de ce mot tait peut-tre que la fonction de traducteur de langage tait complment par la runion de sous-programmes ou de macro-instructions.

Cette vision de la programmation automatique s'est peu prs impose au dbut des annes 1960 (et dure encore de nos jours), il ne faut pas ignorer qu'une autre solution avait t labore aussi peu prs simultanment, celle de l'interprtation d'un langage de haut niveau. Le concept d'interprteur avait t utilis par Wilkes en Grande Bretagne puis par IBM (S/360) et Bull (M-40 et Gamma 55) pour excuter un code puissant et complexe au moyen d'une machine plus frustre et meilleur march. Les microprogrammes de ces machines reprsentaient un interprteur. Cette solution d'interprteur perdurera dans des machines surtout utilises interactivement, comme le systme BASIC de Dartmouth et GE ou le PAF de Dimitri Starynkevitch la CAB500 de SEA en France. 
BASIC fut dvelopp par John Kemeny et Thomas Kurtz Dartmouth. Sa diffusion sur le time-sharing de General Electric le popularisa durant les annes 1970 et ce langage fut diffus dans divers dialectes et tendu vers le graphique et le multimdia sur les premires gnrations de microordinateurs. C'est en crivant un processeur BASIC pour Altair que Bill Gates commena son ascension et cra Microsoft.
En fait ces interprteurs utilisrent trs vite une solution intermdiaire avec les compilateurs: celle d'un parser qui transformait le code source en code intermdiaire et l'interprteur proprement dit. On aura reconnu les solutions du P-code et des premires versions de Java.

Les premires bauches de langages et de compilateurs se heurtaient deux problmes cruciaux cette poque de puissance de calcul rare et chre: l'encombrement accru des programmes et la lenteur d'excution. La comparaison avec un simple Autocode o chaque instruction de code source correspondait une instruction machine tait notablement en dfaveur des langages et surtout des langages qui se voulaient indpendants de la machine sous-jacente. Le traducteur de langage Autocode fut appel l'Assembleur. Ce n'est pas un hasard si la dfinition par John Backus de FORTRAN, dont la version intiale date de 1954, tait inspire par le code d'instructions de l'IBM 704. FORTRAN continua son volution jusqu' nos jours avec le FORTRAN II, en 1957 qui l'tablit comme langage standrad scientifique, FORTRAN IV en 1962, Fortran 77 normail en avril 1978, puis Fortran 90 en 1991.
A cette exception prs, les constructeurs de machine laissrent de comits de normalisation peupls de leurs scientistes et par des universitaires la dfinition en 1958 du langage ALGOL. Les concepts de ALGOL furent sensiblement innovants, ils ignoraient les particularits des registres pour faire les calculs sur des variables en mmoire, ils admettaient la possibilit de rcursivit des procdures, ils standardisaient une structure de blocs lexicographiques. Certains constructeurs dcidrent de construire leur machine autour de Algol, c'est notamment le cas de Burroughs. Un inconvnient d'Algol est son ignorance de la notion de fichiers qui limita son usage soit des programmes tournnat sur des machines spcifiques soit diffuser sur papier des algorithmes.


En parallle, un comit de normalisation des applications de gestion, pouss par les administrations amricaines et quelques grands clients, le CODASYL publia en 1959 les premires spcifications de COBOL.  La mmoire de Grace Hopper est associe la naisssance de COBOL, essentiellement parce qu'elle apporta son exprience de FLOW-MATIC sur Univac I.
Ce langage n'aurait probablement pas eu le succs qu'il a connu sans les contraintes de l'administration amricaine. Par rapport FORTRAN et ALGOL, le CODASYL eut le souci de la rsolution des problmes pratiques des utilisateurs de fichiers squentiels base de cartes ou de supports magntiques.
Aucun langage n'avait t conu pour l'accs direct aux donnes que permettaient les disques magntiques et les entres directes par terminaux. Les comits de normalisation de COBOL se contentrent d'ajouter des commandes (verbes) de positionnement dans les fichiers pour supporter les disques. Ce n'est pas un hasard si les transactions CICS ont  trs longtemps t longtemps t programmes en macro-assembleur en y ajoutant des commandes spcifiques que d'autres constructeurs ajoutrent au COBOL pour supporter le transactionnel. COBOL continua d'tre amlior par le CODASYL sous les versions 1961, 1968 et 1974 et 1980.

IBM, ne supportant COBOL qu' contre coeur, essaya en 1964 de faire avec PL/1 un langage universel en prenant ce qu'il y avait de mieux dans ALGOL et en lui ajoutant les plus de FORTRAN et de COBOL. PL/1 s'essaya mme traiter du temps rel et du transactionnel en dfinissant le concept de process sans trop en mesurer l'application relle. PL/1 traitant tous les formats de donnes et en particulier les chanes de  bits tait un langage tentant pour rayer l'assembleur de l'offre logiciel. Le concepteurs de MULTICS, puis aprs eux ceux de Honeywell (PL/6 pour CP-6, puis pour GCOS8) et Bull (HPL pour GCOS64 et GCOS7) pour en faire un langage d'criture du systme d'exploitation. Au prix d'une certaine interprtation des spcifications de PL/1 et/ou d'une pince d'assembleur, le concept d'une programmation de systme en langage de haut niveau fut acquis. IBM, plutt que d'utiliser PL/1 pour ses nouveaux dveloppements, en dfinit un sous-ensemble plus efficient PL/S. Un autre dialecte de PL/1 qui eut son importance fut PL/M dvelopp en 1972 par Gary Kindall qui lui servit comme langage d'implmentation de CP/M.

Plutt que de dformer PL/1 les concepteurs de UNIX autour de Ken Thompson aux Bell Laboratories prfrrent , partir de langages d'implmentation utiliss au MIT (CPL, BCPL et B) dvelopper en 1971 leur propre langage qui eut le succs que l'on sait, le langage C. Le plus clbre des compilateurs C, appel gcc, a t dans le cadre du projet GNU.

Un langage original, Forth, bas entirement sur le concept de piles et de rcursivit, eut un certain succs la fin des donnes 1970. Il fut conu en 1969 comme langage de process control par Chuck Moore, un astronome.

En fait, les concepteurs de langages cherchrent le plus souvent ce que tous les concepts utiles au programmeur soient dfinissables dans "leur" langage  suivant ainsi la tentation d'imiter l'volution des langages naturels o cet utilisateur sans parler des Acadmies acceptent des mots trangers pour les nationaliser. L'ide d'utiliser plusieurs langages diffrents pour crire un mme programme est un concept quelque peu abscons pour un esprit occidental. C'tait cependant oublier qu'un programme est le plus souvent crit par plusieurs personnes et, qui pis est, des priodes diffrentes. Cette ncessit a d'abord t satisfaite par des extensions des concepts de sous-programmes et par des dfinitions rigoureuses des interfaces entre programmes (paramtres d'appel et de retour) spcification rigoureuse des donnes partages, par le concept de package apparu un peu plus tard. Il devint donc possible de ne pas recompiler le programme depuis la totalit de ses modules en code source, ce qui tait encore la rgle sous-entendue par certains langages, mais d'diter les liens entre modules par un processeur spcifique. Cette possibilit a t juge ncessaire par les concepteurs des systmes d'exploitation ds les annes 1960, bien que c'est seulement avec le dveloppement des langages orients objet que ce concept a t pris en compte par les concepteurs de langage.

Une dformation des langages et de leurs compilateurs a t mis en oeuvre trs tt, c'est de faire prcder la compilation et mme le parsing par un traitement syntactique au niveau du code source permettant d'tendre volont le langage. L''utilisation de macroprocesseurs plus ou moins sophistiqus de l'INCLUDE de C jusqu'au traitement rcursif de TRAC et du MacProc de Bull, en passant a permis au programmeur COBOL d'crire des transactions ou de raliser une modularit spcifique -pas ncessairement rigoureuse, parce que non interprte l'excution.

Parmi les langages nouveaux qui virent le jour une cadence plus faible partir des annes 1975, il convient de citer ADA (1979), langage soumis un concours par le Pentagone avec un objectif de remplacer JOVIAL , un anctre de 1960, et de se substituer PL/1 en renforant le typage des donnes et la solidit des interfaces. ADA vint trop tardivement pour s'imposer sur les main frames et trop tt pour acqurir une place sur les micros trop peu puissants, l'poque. Il se heurta la concurrence de C et dut se contenter la niche des systmes embarqus de l'US Air Force o il vole oprationnellement au dessus des continents. Le concours de spcification de ADA fut remport par l'quipe de Jean Ichbiah CII-HB.
En France, et pour des besoins peu prs identiques ceux des tats-Unis, les Armes dcidrent d'utiliser le langage LTR (Langage Temps Rel), ce qui eut pour effet de rarfier le march potentiel de ADA.

 

Pascal fut un langage dfini en 1970 Zurich par le professeur Niklaus Wirth des fins pdagogiques: moins complet que C, moins sujet la "programmation spaghetti" que BASIC,  n'exigeant pas de compilateur volumineux, il tait appropri aux micro-ordinateurs de premire gnration. Pascal fut mme quelques temps vers 1980 un candidat pour remplacer le systme d'exploitation de ceux-ci par un interprteur de P-code (UCSD). On notera aussi la mme poque le succs de l'aventure Borland partir d'un compilateur Pascal sur micros dont le prix menaa un temps le business de Microsoft. L'augmentation de la taille de mmoire disponible lui fit cder la place C. L'quipe Wirth essaya de prolonger le dveloppement de PASCAL avec Modula (1975)

 

C'est encore au cours des annes 1970 que fut invent le langage Smalltalk, dvelopp au Xerox PARC par Alan Kay et Adele Goldberg. Ce langage ajoute l'esprit de l'UCSD deux donnes importantes: la prise en compte d'un cran avec fentres (au lieu du paradigme Teletype ou cartes perfores utilises jusqu'alors) et le concept d'objets communiquant par messages. L'insuccs de Smalltalk repris par Digitalk eut comme raison le caractre dogmatique excluant du systme les programmes non crits dans ce langage. Les dfinitions de Smalltalk pour un langage orient objet, la dfinition de l'hritage des variables et le concept de cration/destruction d'objet seront reprises dans le produit industriel le plus important C++ invent par le danois Bjarne Stroustrup aux Bell Laboratories en 1983 et qui a su coexister avec C -en utilisant le compilateur C comme le traducteur du langage par le prprocesseur C++. Le succs de C et de C++ doit beaucoup la disponibilit de la chane GNU dveloppe initialement au MIT puis dans la communaut des logiciels libres. La gratuit de la chane de fabrication a strilis les efforts faits par certains pour fournir une  chane comparable. Il faut toutefois signaler la grande antriorit (1964) du langage norvgien SIMULA qui fut le pionnier des langages orients objet.
Une variante de C++, C# fut introduite en 2000 par Microsoft. 

 

Au milieu des annes 1980, une quipe de Sun autour de James Gosling se mirent tudier le problme de programmation des objets distribus interconnects sur Internet. En 1991, ils dvelopprent un langage nomm Oak. L'ide nouvelle tait de dvelopper un systme de programmation unique pour des objets d'architecture interne diffrente et dont les programmes devaient pouvoir tre tlchargs distance. Avant d'tre utiliss dans ce contexte, le concept fut tendu aux ordinateurs personnels dans le paradigme de "votre ordinateur est le rseau". ce langage est JAVA (introduit formellement en 1995) qui reprend l'essentiel des concepts de C ainsi que celui des langages interprts en standardisant le langage intermdiaire destin au tlchargement. Les premiers systmes Java fonctionnrent donc la manire de Basic et eurent des difficults s'imposer contre C pour des raisons de performances que ne contrebalanaient pas l'amlioration d la robustesse. La puissance des microprocesseurs et les tailles de mmoire augmentant, il devint possible d'imaginer la ralisation de compilateurs Java "Just in Time" qui transformaient le langage intermdiaire en code machine spcifique du type de microprocesseur chaque invocation du programme Java. Tout se passait comme s'il s'agissait d'une interprtation avec la rapidit d'un compilateur standard. JavaScript un dialecte sous-ensemble de Java devint rapidement le langage le plus rpandu dans les applications distribues du Web. 

 

Une autre famille de langages est drive des interprteurs de commande eux-mme drivs des antiques Job Control Languages des systmes de batch processing. Les JCL taient devenus complexes et le besoin de paramtrage de ceux-ci par exemple par un jeu de macros s'imposa. Ensuite l'intrt d'y introduire le concept de boucles fut reconnu. Nous avions l'embryon d'un nouveau langage de programmation certes spcialis avec des lments relativement ignors des langages plus "srieux".
Dans les systmes time-sharing, l'quivalent du JCL se retrouvait dans les langages de  commande, qu'on appellera plus tard les shells.
L'analyse des besoins par des informaticiens plus rigoureux aboutit la cration d'une nouvelle famille de langages interprts dont les plus connus sont REXX (introduit vers 1980 par IBM Hursley) et PERL (invent en 1987 par Larry Wall). Bull en fusionnant les besoins du JCL et ceux de l'utilisation interactive cra le langage commun GCL sur GCOS7 au dbut des annes 1980.

 

Le PHP (1995) est un langage de programmation interprt invent en Scandinavie spcifiquement pour le dveloppement des applications distribues sur Internet. Alors que JAVA se plaait dlibrment comme langage client dans un modle client-serveur o le serveur tait un simple serveur de bases de donnes (machine SQL), PHP permet la programmation d'une application sur le serveur en utilisant un catalogue standard de ressources, suffisamment limit pour ne pas compromettre l'intgrit du serveur. Le succs de PHP actuellement est sans doute d son statut de "logiciel libre" associ au serveur Web Apache et au moteur de base de donnes MySQL.

 

 

Il reste parler de langages qui visaient des marchs particuliers ou du moins qui n'ont pas cherch en remplacer d'autres. Ces langages sont fonds sur des interprteurs.

LISP a t dvelopp ds la fin des annes 1950 au MIT comme un langage automodifiable bas sur le traitement de listes. L'ide  de John McCarthy, dans la ligne de von Neumann, aura t de laisser l'automate de base de l'interprteur la responsabilit de l'optimisation ou de la recherche de convergence du processus dcrit par le programme LISP. Ce langage fut -avant ALGOL- le premier admettre la rcursivit. Il fut aussi le premier tre indpendant de la gestion de mmoire et ncessiter ce qu'on appellera la "garbage collection".
Sa version Lisp1.5 publie en 1962 resta le standard jusqu' l'closion de nombreux dialectes dans les annes 1980 (Common Lisp, Le_Lisp, l'INRIA, AutoLisp dans AutoCad, Scheme)
. IL a eu avec TRAC (Calvin Mooers MIT 1966) et Snobol (1962-1964) des continuations visant plus spcifiquement le traitement de chanes de caractres -avec les restrictions poses par l'ASCII-. Prolog dvelopp en Europe depuis 1972 Marseille (Alain Colmerauer et Philippe Roussel) et Edinburgh n'a pas su s'imposer non plus probablement plus cause de ses mthodes de commercialisation que par sa participation la dbcle de la Ve gnration japonaise.
LOGO se Seymour Papert, en 1968, fut un essai de populariser les langages de programmation en ajoutant aux constructions de base de LISP des primitives graphiques.

On notera aussi que les tableurs (Visicalc et EXCEL)  dans lesquels ont t insrs de vritables programmes procdent de la mme logique d'interprtation que les processeurs d'intelligence artificielle. Leur convivialit empirique a eu beau jeu de leur permettre de s'imposer devant leurs anctres.

APL invent par Ken Iverson IBM la fin des annes 1950 voulait un peu tre aux nombres ce que LISP tait aux chanes de caractre. L'utilisation d'un jeu de symboles mathmatiques non disponibles sur les claviers ordinaires a probablement t une des sources de son chec devant BASIC et les tableurs. Lui aussi est un langage interprt excutable sans traitement pralable par le moteur de la machine.

Les ordinateurs se sont avrs capables d'excuter des oprations non seulement sur des nombres mais sur des variables symboliques. C'est ainsi que sont ns les langages Macsyma (Joel Moses au MIT en 1969), puis Maple (Universit de Waterloo en 1980) et Mathematica (Stephen Wolfram 1988) qui permettent les calculs mathmatiques sous forme algbrique aussi bien que sous leur expression numrique.

On aura du mal classer EMACS dans les langages de programmation. Mais tout comme les tableurs il s'agit d'un processeur spcialis inspir de LISP qui a t progressivement tendu pour avoir ces capacits de programmation. Son dveloppement universitaire et sa diffusion dans le monde GNU a fait de Richard Stallman un auteur de programmes ayant marqu l'histoire de l'informatique.

On n'a trait ici que des langages rpandus en dehors de leur quipe d'origine. A tous les langages diffusion restreinte dont certains ont t l'origine des langages mentionns ci-dessus (BCPL pour C, LIS pour ADA...) il convient d'ajouter ceux destins des applications particulires (MUMPS, TeX, Postscript) dont certains mritent qu'on leur accorde une place sidans l'histoire du logiciel.

HISTOIRE et Commentaires sur les LANGAGES de PROGRAMMATION

  • FORTRAN
  • ALGOL
  • COBOL
  • PL/1
  • C
  • ADA
  • BASIC
  • LISP
  • SIMULA
  • SNOBOL
  • EMACS

ARTICLES

LINKS

Computer Language History contenant un arbre de la filiation des langages de programmation ainsi que des liens vers des histoires particulires aux diffrents langages.

Zeblaze| XT175| xiaomi m365| xiaomi Roborock S50| Roborock S50| Wltoys| VISUO XS812| Viltrox EF-M2| Vernee T3 Pro| Ulefone Power 5| Tronxy X5S| SONOFF| SJCAM SJ8 PRO| Rowin WS-20| MXQ PRO| MJX Bugs 5W| lixada| LEMFO LEM8| lemfo lem4 pro| LEMFO| koogeek| kkmoon| JJPRO X5| hubsan h501s x4| hubsan h501s| Hubsan| hohem isteady pro| goolrc| Feiyu| Feiyu Tech G6| Ender 3| Creality Ender 3| Bugs 5W| anet a8 3d printer review| Anet| Anet A4| Anet A6| Anet A8| andoer| ammoon| amazfit bip|

按揭計算機| 買樓| 上車盤| 搵樓| 屋苑| 樓盤| 地產| 租樓| 租盤| 二手樓| 新盤| 一手樓| 豪宅| 校網| 放盤| 樓價| 成交| 居屋| 貝沙灣| 美孚新邨| 嘉湖山莊| 太古城| 日出康城| 九龍站 | 沙田第一城| 樓市走勢| 青衣| 西半山| 西貢| 荃灣|

雪茄网购| 雪茄| 哈瓦那雪茄| 雪茄价格| 雪茄烟网购| 雪茄专卖店| 雪茄怎么抽| 雪茄烟| 雪茄吧| 陈年雪茄| 大卫杜夫雪茄| 保利华雪茄| 古巴雪茄品牌| 古巴雪茄| 古巴雪茄多少钱一只| 古巴雪茄专卖网| 烟斗烟丝| 烟丝| 小雪茄| 金特罗雪茄| 帕特加斯d4 | 蒙特雪茄| 罗密欧朱丽叶雪茄| 网上哪里可以买雪茄| 限量版雪茄| 雪茄专卖| 雪茄专卖网| 雪茄哪里买| 买雪茄去哪个网站| 推荐一个卖雪茄的网站| 雪茄烟| 古巴雪茄价格| 雪茄海淘| 雪茄网| 帕拉森雪茄|

噴畫| banner| banner 價錢| Backdrop| Backdrop 價錢| 易拉架| 易拉架 價錢| 橫額| 印刷| 橫額印刷| 印刷 報價| 貼紙| 貼紙印刷| 宣傳單張| 宣傳單張印刷| 展覽攤位| 書刊 印刷| Bannershop| Ebanner| Eprint| 印刷公司| 海報| 攤位| pvc板| 易拉架設計| 海報印刷| 展板| 禮封| 易拉架尺寸| foamboard| hk print| hong kong printing| Printing| 喜帖| 過膠| 信封| backdrop| print100| 咭片皇| 印館|

邮件营销| Email Marketing 電郵推廣| edm营销| edm| 营销软件| 推广软件| 邮件群发软件| 邮件群发| Mailchimp| Hubspot| Sendinblue| ActiveCampaign| Aweber| 邮件主题怎么写| 邮件主题| 邮件模板| Maichimp| benchmark| SMS|

wms| vending machine| barcode scanner| QR code scanner| SME IT| it solution| rfid tag| rfid| rfid reader| it outsourcing| POS label| IRLS| IT Support| system integration| software development| inventory management system| label printing| digital labelling| barcode label| Self Service Kiosk| Kiosk| Voice Picking| POS scanner| POS printer| System Integrator| printing labels| Denso| barcode| handheld| inventory management| warehouse management| stock taking| POS| Point of sale| Business service| Web Development| vending| app development| mobile app development| handheld device| terminal handheld| inventory management software| pos system| pos software| pos hardware| pos terminal| printer hong kong| receipt printer| thermal printer| thermal label printer| qr code scanner app| qr scanner app| online qr code scanner| qr code scanner online mobile| qr code scanner download| mdm| mobile solutions| mdm solutions| mobile device management|

Tomtop| Online Einkaufen| online shop| Autozubehör| Bekleidung| Kopfhörer| badausstattung| Badmöbel| smartwatch günstig| Luftbefeuchter| lichtbox| Kosmetiktaschen| Make-Up Pinsel| Smartphones günstig| tablet günstig| Wanderstock| fahrrad maske| spielekonsole| spielkonsole| Geldbeutel| Gaming Kopfhörer|

electric bike| best electric bike| electric bikes for adults| e bike| pedal assist bike| electric bikes for sale| electric bike shop| electric tricycle| folding electric bike| mid drive electric bike| electric trike| electric mountain bike| electric bicycle| electric bike review| electric fat bike| fat tire electric bike| women's electric bike |

office| 地產代理| 辦公室| Property Agent| Hong Kong Office Rental| hong kong office| 物業投資| office building| Commercial Building| Grade A Office| 寫字樓| 商業大廈| 甲級寫字樓| 頂手| 租寫字樓| leasing| Rent Office| 地產新聞| office for sale|

太古廣場| 海富中心| 中港城| 統一中心| 瑞安中心| 力寶中心| 信德中心| 新港中心| 中環中心| 合和中心| 康宏廣場| 星光行| 鷹君中心| 遠東金融中心| 港晶中心| 無限極廣場| 光大中心| 中遠大廈| 海港中心| 新世界大廈| 永安中心| 南洋中心| 永安集團大廈| 華潤大廈| 永安廣場| 朗豪坊| 時代廣場| 新世紀廣場| 太古城中心| 希慎廣場| 交易廣場| 創紀之城| 港威大廈| 企業廣場| 新文華中心| 置地廣場| 怡和大廈| 世貿中心| 太子大廈| 中信大廈| 禮頓中心| 中銀大廈| 銅鑼灣廣場| 環球大廈| 海濱廣場| 新鴻基中心| 萬宜大廈| Tower 535| 高銀金融國際中心| 海濱匯| 皇后大道中9號| 國際金融中心| 半島中心| 利園三期| 天文臺道8號| 信和廣場| 娛樂行| 南豐大廈| 帝國中心| 中環廣場| 美國銀行中心| 尖沙咀中心| 新東海商業中心| Chater House| Nexxus Building| One Island East| 中匯大廈| Fairmont House| 華懋廣場| 中建大廈| 北京道1號| 胡忠大廈| Central Plaza| The Centrium| LHT Tower| China Building| AIA Central| Crawford House| Exchange Tower| AIA Tower| World Wide House| One Kowloon| The Gateway | One Island South| Jardine House| Millennium City | Exchange Square| Times Square | Pacific Place| Admiralty Centre| United Centre| Lippo Centre| Shun Tak Centre| Silvercord| The Center| Mira Place| Ocean Centre| Cosco Tower| Harcourt House| Cheung Kong Center|

school| international school of hong kong| international school| school in Hong Kong| primary school| elementary school| private school| UK school| british school| extracurricular activity| Hong Kong education| primary education| top schools in Hong Kong| Preparatory| best international schools hong kong| best primary schools in hong kong| primary school hong kong| private school hong kong| british international school| extra-curricular| school calendars| boarding school| school day| Bursary| British international school Hong Kong| British school Hong Kong| English primary school Hong Kong| English school Hong Kong| International school Hong Kong| School Hong Kong| boarding school Hong Kong| best school in Hong Kong| School fees|

electric bike| Best smartwatch| Best Wilreless earphones|